{"cells": [{"cell_type": "markdown", "metadata": {"collapsed": true}, "source": "# Welcome to PixieDust\n\nThis notebook features an introduction to [PixieDust](https://pixiedust.github.io/pixiedust/index.html), the Python library that makes data visualization easy. \n\nThis notebook runs on Python 2.7 and 3.5, with Spark 1.6 and 2.0.\n\n## <a id=\"toc\"></a>Table of Contents\n\n * [Get started](#part_one)\n * [Load text data from remote sources](#part_two)\n * [Mix Scala and Python on the same notebook](#part_three)\n * [Add Spark packages and run inside your notebook](#part_four)\n * [Stash your data](#part_five)\n * [Contribute](#contribute)\n\n\n<hr>\n\n# <a id=\"part_one\"></a>Get started\n\nThis introduction is pretty straightforward, but it wouldn't hurt to load up the [PixieDust documentation](https://pixiedust.github.io/pixiedust/) so it's handy. \n\nNew to notebooks? Don't worry. Here's all you need to know to run this introduction:\n\n1. Make sure this notebook is in Edit mode\n1. To run code cells, put your cursor in the cell and press **Shift + Enter**.\n1. The cell number will change to **[\\*]** to indicate that it is currently executing. (When starting with notebooks, it's best to run cells in order, one at a time.)"}, {"cell_type": "code", "metadata": {"scrolled": true, "collapsed": false}, "outputs": [], "source": "# To confirm you have the latest version of PixieDust on your system, run this cell\n!pip install --user --upgrade pixiedust", "execution_count": null}, {"cell_type": "markdown", "metadata": {}, "source": "Now that you have PixieDust installed and up-to-date on your system, you need to import it into this notebook. This is the last dependency before you can play with PixieDust."}, {"cell_type": "code", "metadata": {"collapsed": false}, "outputs": [{"text": "Pixiedust database opened successfully\n", "output_type": "stream", "name": "stdout"}, {"output_type": "display_data", "data": {"text/plain": "<IPython.core.display.HTML object>", "text/html": "\n        <div style=\"margin:10px\">\n            <a href=\"https://github.com/ibm-watson-data-lab/pixiedust\" target=\"_new\">\n                <img src=\"https://github.com/ibm-watson-data-lab/pixiedust/raw/master/docs/_static/pd_icon32.png\" style=\"float:left;margin-right:10px\"/>\n            </a>\n            <span>Pixiedust version 1.0.2</span>\n        </div>\n        "}, "metadata": {}}], "source": "import pixiedust", "execution_count": 1}, {"cell_type": "markdown", "metadata": {}, "source": "If you get a message telling you that you're not running the latest version of PixieDust, restart the kernel from the **Kernel** menu and rerun the `import pixiedust` command. (Any time you restart the kernel, rerun the `import pixiedust` command.)\n\nWhen you see the message `Pixiedust version upgraded from 0.60 to 1.0.2`, or `Pixiedust version 1.0.2`, you're all set."}, {"cell_type": "markdown", "metadata": {}, "source": "## Behold, display()\n\nIn the next cell, build a simple dataset and store it in a variable. "}, {"cell_type": "code", "metadata": {"collapsed": true}, "outputs": [], "source": "# Build the SQL context required to create a Spark dataframe \nsqlContext=SQLContext(sc) \n# Create the Spark dataframe, passing in some data, and assign it to a variable\ndf = sqlContext.createDataFrame(\n[(\"Green\", 75),\n (\"Blue\", 25)],\n[\"Colors\",\"%\"])", "execution_count": 3}, {"cell_type": "markdown", "metadata": {}, "source": "The data in the variable `df` is ready to be visualized, without any further code other than the call to `display()`."}, {"cell_type": "code", "metadata": {"collapsed": false, "pixiedust": {"displayParams": {"handlerId": "pieChart", "rowCount": "100", "title": "Colors in this pie chart, by %", "keyFields": "Colors", "valueFields": "%", "aggregation": "SUM"}}}, "outputs": [{"output_type": "display_data", "data": {"text/plain": "<IPython.core.display.HTML object>", "text/html": "<style type=\"text/css\">.pd_warning{display:none;}</style><div class=\"pd_warning\"><em>Hey, there's something awesome here! To see it, open this notebook outside GitHub, in a viewer like Jupyter</em></div>\n        <div class=\"pd_save is-viewer-good\" style=\"padding-right:10px;text-align: center;line-height:initial !important;font-size: xx-large;font-weight: 500;color: coral;\">\n            Colors in this pie chart, by %\n        </div>\n    <div id=\"chartFigure51755a6b\" class=\"pd_save is-viewer-good\" style=\"overflow-x:auto\">\n            \n                    \n                            <center><img style=\"max-width:initial !important\" src=\"\" class=\"pd_save\"></center>\n                        \n                    \n                \n        </div>"}, "metadata": {}}], "source": "# display the dataframe above as a pie chart\ndisplay(df)", "execution_count": 4}, {"cell_type": "markdown", "metadata": {}, "source": "After running the cell above, you should see a Spark DataFrame displayed as a **pie chart**, along with some controls to tweak the display. All that came from passing the DataFrame variable to `display()`.\n\nIn the next cell, you'll pass more interesting data to `display()`, which will also offer more advanced controls."}, {"cell_type": "code", "metadata": {"collapsed": false, "pixiedust": {"displayParams": {"handlerId": "barChart", "title": "Customers by Category clustered by Year", "mpld3": "false", "valueFields": "unique_customers", "aggregation": "SUM", "rowCount": "100", "keyFields": "category", "rendererId": "matplotlib", "clusterby": "year"}}}, "outputs": [{"output_type": "display_data", "data": {"text/plain": "<IPython.core.display.HTML object>", "text/html": "<style type=\"text/css\">.pd_warning{display:none;}</style><div class=\"pd_warning\"><em>Hey, there's something awesome here! To see it, open this notebook outside GitHub, in a viewer like Jupyter</em></div>\n        <div class=\"pd_save is-viewer-good\" style=\"padding-right:10px;text-align: center;line-height:initial !important;font-size: xx-large;font-weight: 500;color: coral;\">\n            Customers by Category clustered by Year\n        </div>\n    <div id=\"chartFigure6c2a96a6\" class=\"pd_save is-viewer-good\" style=\"overflow-x:auto\">\n            \n                    \n                            <center><img style=\"max-width:initial !important\" src=\"\" class=\"pd_save\"></center>\n                        \n                    \n                \n        </div>"}, "metadata": {}}], "source": "# create another DataFrame, in a new variable\ndf2 = sqlContext.createDataFrame(\n[(2010, 'Camping Equipment', 3),\n (2010, 'Golf Equipment', 1),\n (2010, 'Mountaineering Equipment', 1),\n (2010, 'Outdoor Protection', 2),\n (2010, 'Personal Accessories', 2),\n (2011, 'Camping Equipment', 4),\n (2011, 'Golf Equipment', 5),\n (2011, 'Mountaineering Equipment',2),\n (2011, 'Outdoor Protection', 4),\n (2011, 'Personal Accessories', 2),\n (2012, 'Camping Equipment', 5),\n (2012, 'Golf Equipment', 5),\n (2012, 'Mountaineering Equipment', 3),\n (2012, 'Outdoor Protection', 5),\n (2012, 'Personal Accessories', 3),\n (2013, 'Camping Equipment', 8),\n (2013, 'Golf Equipment', 5),\n (2013, 'Mountaineering Equipment', 3),\n (2013, 'Outdoor Protection', 8),\n (2013, 'Personal Accessories', 4)],\n[\"year\",\"category\",\"unique_customers\"])\n\n# This time, we've combined the dataframe and display() call in the same cell\n# Run this cell \ndisplay(df2)", "execution_count": 4}, {"cell_type": "markdown", "metadata": {}, "source": "## display() controls\n\n### Renderers\nThe chart above, like the first one, is rendered by matplotlib. With PixieDust, you have other options. To toggle between renderers, use the `Renderers` control at top right of the display output:\n1. [Bokeh](http://bokeh.pydata.org/en/0.10.0/index.html) is interactive; play with the controls along the top of the chart, for example, zoom and save.\n1. [Matplotlib](http://matplotlib.org/) is static; you can save the image as a PNG\n\n### Chart options\n\n1. **Chart types**: At top left, you should see an option to display the dataframe as a table. You should also see a dropdown menu with other chart options, including bar charts, pie charts, scatter plots, and so on.\n1. **Options**: Click the `Options` button to explore other display configurations; for example, clustering and aggregation.\n\nHere's more on [customizing `display()` output](https://pixiedust.github.io/pixiedust/displayapi.html)."}, {"cell_type": "markdown", "metadata": {}, "source": "## Load External Data\nSo far, you've worked with data hard-coded into our notebook. Now, load external data (CSV) from a URL."}, {"cell_type": "code", "metadata": {"collapsed": false, "pixiedust": {"displayParams": {"handlerId": "scatterPlot", "title": "Distribution of MPG per Horsepower", "valueFields": "mpg", "rowCount": "1000", "color": "origin", "keyFields": "horsepower", "rendererId": "matplotlib", "kind": "hex"}}}, "outputs": [{"output_type": "display_data", "data": {"text/plain": "<IPython.core.display.HTML object>", "text/html": "<style type=\"text/css\">.pd_warning{display:none;}</style><div class=\"pd_warning\"><em>Hey, there's something awesome here! To see it, open this notebook outside GitHub, in a viewer like Jupyter</em></div>\n        <div class=\"pd_save is-viewer-good\" style=\"padding-right:10px;text-align: center;line-height:initial !important;font-size: xx-large;font-weight: 500;color: coral;\">\n            Distribution of MPG per Horsepower\n        </div>\n    <div id=\"chartFiguree49cca0f\" class=\"pd_save is-viewer-good\" style=\"overflow-x:auto\">\n            \n                    \n                            <center><img style=\"max-width:initial !important\" src=\"\" class=\"pd_save\"></center>\n                        \n                    \n                \n        </div>"}, "metadata": {}}], "source": "# load a CSV with pixiedust.sampledata()\ndf3 = pixiedust.sampleData(\"https://github.com/ibm-watson-data-lab/open-data/raw/master/cars/cars.csv\")\ndisplay(df3)", "execution_count": 5}, {"cell_type": "markdown", "metadata": {}, "source": "You should see a scatterplot above, rendered again by matplotlib. Find the `Renderer` menu at top-right. You should see options for **Bokeh** and **Seaborn**. If you don't see Seaborn, it's not installed on your system. No problem, just install it by running the next cell."}, {"cell_type": "code", "metadata": {"collapsed": true}, "outputs": [], "source": "# To install Seaborn, uncomment the next line, and then run this cell\n#!pip install --user seaborn", "execution_count": 7}, {"cell_type": "markdown", "metadata": {}, "source": "*If you installed Seaborn, you'll need to also restart your notebook kernel, and run the cell to `import pixiedust` again. Find **Restart** in the **Kernel** menu above.*"}, {"cell_type": "markdown", "metadata": {}, "source": "End of chapter. [Return to table of contents](#toc)\n<hr>"}, {"cell_type": "markdown", "metadata": {}, "source": "\n# <a id=\"part_two\"></a>Load text data from remote sources\n"}, {"cell_type": "markdown", "metadata": {}, "source": "Data files commonly reside in remote sources, such as such as public or private market places or GitHub repositories. You can load comma separated value (csv) data files using Pixiedust's `sampleData` method. "}, {"cell_type": "markdown", "metadata": {}, "source": "## Prerequisites"}, {"cell_type": "markdown", "metadata": {}, "source": "If you haven't already, import PixieDust. Follow the instructions in [Get started](#part_one)."}, {"cell_type": "markdown", "metadata": {}, "source": "When you run a notebook cell (that loads or processes data) it might trigger execution of one or more Spark jobs. \n\n## Enable Apache Spark  job monitoring"}, {"cell_type": "code", "metadata": {"collapsed": false}, "outputs": [{"text": "Succesfully enabled Spark Job Progress Monitor\n", "output_type": "stream", "name": "stdout"}], "source": "pixiedust.enableJobMonitor()", "execution_count": 6}, {"cell_type": "markdown", "metadata": {}, "source": "## Load  data\n\nTo load a data set, run `pixiedust.sampleData` and specify the data set URL:"}, {"cell_type": "code", "metadata": {"collapsed": false}, "outputs": [], "source": "homes = pixiedust.sampleData(\"https://openobjectstore.mybluemix.net/misc/milliondollarhomes.csv\")", "execution_count": null}, {"cell_type": "markdown", "metadata": {}, "source": "The `pixiedust.sampleData` method loads the data into an [Apache Spark DataFrame](https://spark.apache.org/docs/latest/sql-programming-guide.html#datasets-and-dataframes), which you can inspect and visualize using `display()`."}, {"cell_type": "markdown", "metadata": {}, "source": "## Inspect and preview the loaded data\n\nTo inspect the automatically inferred schema and preview a small subset of the data, you can use the _DataFrame Table_ view, as shown in this preconfigured example: "}, {"cell_type": "code", "metadata": {"collapsed": false, "pixiedust": {"displayParams": {"handlerId": "dataframe"}}}, "outputs": [{"output_type": "display_data", "data": {"text/plain": "<IPython.core.display.HTML object>", "text/html": "<style type=\"text/css\">.pd_warning{display:none;}</style><div class=\"pd_warning\"><em>Hey, there's something awesome here! To see it, open this notebook outside GitHub, in a viewer like Jupyter</em></div><style type=\"text/css\" class=\"pd_save is-viewer-good\">\n  .df-table-wrapper .panel-heading {\n    border-radius: 0;\n    padding: 0px;\n  }\n  .df-table-wrapper .panel-heading:hover {\n    border-color: #008571;\n  }\n  .df-table-wrapper .panel-title a {\n    background-color: #f9f9fb;\n    color: #333333;\n    display: block;\n    outline: none;\n    padding: 10px 15px;\n    text-decoration: none;\n  }\n  .df-table-wrapper .panel-title a:hover {\n    background-color: #337ab7;\n    border-color: #2e6da4;\n    color: #ffffff;\n    display: block;\n    padding: 10px 15px;\n    text-decoration: none;\n  }\n  .df-table-wrapper {\n    font-size: small;\n    font-weight: 300;\n    letter-spacing: 0.5px;\n    line-height: normal;\n  }\n  .df-table-search-count {\n    display: inline-block;\n    margin: 20px 0;\n  }\n  .df-table-container {\n    max-height: 50vh;\n    max-width: 100%;\n    overflow-x: auto;\n    position: relative;\n  }\n  .df-table-wrapper table {\n    border: 0 none #ffffff;\n    border-collapse: collapse;\n    margin: 0;\n    min-width: 100%;\n    padding: 0;\n    table-layout: fixed;\n  }\n  .df-table-wrapper tr.hidden {\n    display: none;\n  }\n  .df-table-wrapper tr:nth-child(even) {\n    background-color: #f9f9fb;\n  }\n  .df-table-wrapper tr.even {\n    background-color: #f9f9fb;\n  }\n  .df-table-wrapper tr.odd {\n    background-color: #ffffff;\n  }\n  .df-table-wrapper td + td {\n    border-left: 1px solid #e0e0e0;\n  }\n\n  .df-table-wrapper thead,\n  .fixed-header {\n    color: #337ab7;\n    font-family: monospace;\n  }\n  .df-table-wrapper tr,\n  .fixed-row {\n    border: 0 none #ffffff;\n    margin: 0;\n    padding: 0;\n  }\n  .df-table-wrapper th,\n  .df-table-wrapper td,\n  .fixed-cell {\n    border: 0 none #ffffff;\n    margin: 0;\n    min-width: 50px;\n    padding: 5px 20px 5px 10px;\n    text-align: left;\n    word-wrap: break-word;\n  }\n  .df-table-wrapper th {\n    padding-bottom: 0;\n    padding-top: 0;\n  }\n  .df-table-wrapper th div {\n    max-height: 1px;\n    visibility: hidden;\n  }\n\n  .df-schema-field {\n    margin-left: 10px;\n  }\n\n  .fixed-header-container {\n    overflow: hidden;\n    position: relative;\n  }\n  .fixed-header {\n    border-bottom: 2px solid #2e6da4;\n    display: table;\n    position: relative;\n  }\n  .fixed-row {\n    display: table-row;\n  }\n  .fixed-cell {\n    display: table-cell;\n  }\n</style><div class=\"df-table-wrapper df-table-wrapper-f6fe6655 panel-group pd_save is-viewer-good\">\n  <!-- dataframe schema -->\n  <div class=\"panel panel-default\">\n    <div class=\"panel-heading\">\n      <h4 class=\"panel-title\" style=\"margin: 0px;\">\n        <a data-toggle=\"collapse\" href=\"#df-schema-f6fe6655\" data-parent=\"#df-table-wrapper-f6fe6655\">Schema</a>\n      </h4>\n    </div>\n    <div id=\"df-schema-f6fe6655\" class=\"panel-collapse collapse\">\n      <div class=\"panel-body\" style=\"font-family: monospace;\">\n        <div class=\"df-schema-type\">\n          <span>type: </span><span>struct</span>\n        </div>\n        <div class=\"df-schema-fields\">\n          <div>field:</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'string', 'name': 'PROPERTY TYPE', 'nullable': True}</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'string', 'name': 'ADDRESS', 'nullable': True}</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'string', 'name': 'CITY', 'nullable': True}</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'string', 'name': 'STATE', 'nullable': True}</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'integer', 'name': 'ZIP', 'nullable': True}</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'integer', 'name': 'PRICE', 'nullable': True}</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'integer', 'name': 'BEDS', 'nullable': True}</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'double', 'name': 'BATHS', 'nullable': True}</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'string', 'name': 'LOCATION', 'nullable': True}</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'integer', 'name': 'SQFT', 'nullable': True}</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'integer', 'name': 'LOT SIZE', 'nullable': True}</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'integer', 'name': 'YEAR BUILT', 'nullable': True}</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'integer', 'name': 'DAYS ON MARKET', 'nullable': True}</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'string', 'name': 'URL', 'nullable': True}</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'string', 'name': 'SOURCE', 'nullable': True}</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'integer', 'name': 'LISTING ID', 'nullable': True}</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'double', 'name': 'LATITUDE', 'nullable': True}</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'double', 'name': 'LONGITUDE', 'nullable': True}</div>\n          \n        </div>\n      </div>\n    </div>\n  </div>\n  <!-- dataframe table -->\n  <div class=\"panel panel-default\">\n    <div class=\"panel-heading\">\n      <h4 class=\"panel-title\" style=\"margin: 0px;\">\n        <a data-toggle=\"collapse\" href=\"#df-table-f6fe6655\" data-parent=\"#df-table-wrapper-f6fe6655\">Table</a>\n      </h4>\n    </div>\n    <div id=\"df-table-f6fe6655\" class=\"panel-collapse collapse in\">\n      <div class=\"panel-body\">\n        \n        <input class=\"df-table-search form-control input-sm\" placeholder=\"Search table\" type=\"text\">\n        <div>\n          <span class=\"df-table-search-count\">Showing 100 of 500</span>\n        </div>\n        <!-- fixed header for when dataframe table scrolls -->\n        <div class=\"fixed-header-container\">\n          <div class=\"fixed-header\">\n            <div class=\"fixed-row\">\n              \n              <div class=\"fixed-cell\">PROPERTY TYPE</div>\n              \n              <div class=\"fixed-cell\">ADDRESS</div>\n              \n              <div class=\"fixed-cell\">CITY</div>\n              \n              <div class=\"fixed-cell\">STATE</div>\n              \n              <div class=\"fixed-cell\">ZIP</div>\n              \n              <div class=\"fixed-cell\">PRICE</div>\n              \n              <div class=\"fixed-cell\">BEDS</div>\n              \n              <div class=\"fixed-cell\">BATHS</div>\n              \n              <div class=\"fixed-cell\">LOCATION</div>\n              \n              <div class=\"fixed-cell\">SQFT</div>\n              \n              <div class=\"fixed-cell\">LOT SIZE</div>\n              \n              <div class=\"fixed-cell\">YEAR BUILT</div>\n              \n              <div class=\"fixed-cell\">DAYS ON MARKET</div>\n              \n              <div class=\"fixed-cell\">URL</div>\n              \n              <div class=\"fixed-cell\">SOURCE</div>\n              \n              <div class=\"fixed-cell\">LISTING ID</div>\n              \n              <div class=\"fixed-cell\">LATITUDE</div>\n              \n              <div class=\"fixed-cell\">LONGITUDE</div>\n              \n            </div>\n          </div>\n        </div>\n        <div class=\"df-table-container\">\n          <table class=\"df-table\">\n            <thead>\n              <tr>\n                \n                <th><div>PROPERTY TYPE</div></th>\n                \n                <th><div>ADDRESS</div></th>\n                \n                <th><div>CITY</div></th>\n                \n                <th><div>STATE</div></th>\n                \n                <th><div>ZIP</div></th>\n                \n                <th><div>PRICE</div></th>\n                \n                <th><div>BEDS</div></th>\n                \n                <th><div>BATHS</div></th>\n                \n                <th><div>LOCATION</div></th>\n                \n                <th><div>SQFT</div></th>\n                \n                <th><div>LOT SIZE</div></th>\n                \n                <th><div>YEAR BUILT</div></th>\n                \n                <th><div>DAYS ON MARKET</div></th>\n                \n                <th><div>URL</div></th>\n                \n                <th><div>SOURCE</div></th>\n                \n                <th><div>LISTING ID</div></th>\n                \n                <th><div>LATITUDE</div></th>\n                \n                <th><div>LONGITUDE</div></th>\n                \n              </tr>\n            </thead>\n            <tbody>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>4 Newbury Road Rd</td>\n                \n                <td>Windham</td>\n                \n                <td>NH</td>\n                \n                <td>3087</td>\n                \n                <td>2450000</td>\n                \n                <td>5</td>\n                \n                <td>7.5</td>\n                \n                <td>Windham</td>\n                \n                <td>13461</td>\n                \n                <td>139392</td>\n                \n                <td>2008</td>\n                \n                <td>84</td>\n                \n                <td>http://www.redfin.com/NH/Windham/4-Newbury-Rd-03087/home/96548208</td>\n                \n                <td>NEREN</td>\n                \n                <td>58467283</td>\n                \n                <td>42.83153747</td>\n                \n                <td>-71.27639808</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>25 Marshall Rd</td>\n                \n                <td>Wellesley</td>\n                \n                <td>MA</td>\n                \n                <td>2482</td>\n                \n                <td>1909847</td>\n                \n                <td>5</td>\n                \n                <td>4.5</td>\n                \n                <td>Wellesley</td>\n                \n                <td>4900</td>\n                \n                <td>12228</td>\n                \n                <td>2016</td>\n                \n                <td>71</td>\n                \n                <td>http://www.redfin.com/MA/Wellesley/25-Marshall-Rd-02482/home/105557102</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61782463</td>\n                \n                <td>42.2997542</td>\n                \n                <td>-71.3088256</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>15 E Meadow Ln</td>\n                \n                <td>Middleton</td>\n                \n                <td>MA</td>\n                \n                <td>1949</td>\n                \n                <td>1177500</td>\n                \n                <td>None</td>\n                \n                <td>2.5</td>\n                \n                <td></td>\n                \n                <td>4263</td>\n                \n                <td>40281</td>\n                \n                <td>2015</td>\n                \n                <td>None</td>\n                \n                <td>http://www.redfin.com/MA/Middleton/15-E-Meadow-Ln-01949/home/67981805</td>\n                \n                <td></td>\n                \n                <td>None</td>\n                \n                <td>42.585715</td>\n                \n                <td>-71.012888</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>983 Memorial Dr #302</td>\n                \n                <td>Cambridge</td>\n                \n                <td>MA</td>\n                \n                <td>2138</td>\n                \n                <td>1100000</td>\n                \n                <td>3</td>\n                \n                <td>2.0</td>\n                \n                <td>Harvard Square</td>\n                \n                <td>1606</td>\n                \n                <td>None</td>\n                \n                <td>1920</td>\n                \n                <td>74</td>\n                \n                <td>http://www.redfin.com/MA/Cambridge/983-Memorial-Dr-02138/unit-302/home/105594755</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61690710</td>\n                \n                <td>42.3722656</td>\n                \n                <td>-71.1252212</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>1 Franklin St Ph 2E</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2110</td>\n                \n                <td>8950000</td>\n                \n                <td>3</td>\n                \n                <td>4.5</td>\n                \n                <td>Midtown</td>\n                \n                <td>3435</td>\n                \n                <td>None</td>\n                \n                <td>2016</td>\n                \n                <td>86</td>\n                \n                <td>http://www.redfin.com/MA/Boston/1-Franklin-St-02108/unit-2E/home/102070369</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>55818606</td>\n                \n                <td>42.35631</td>\n                \n                <td>-71.05945</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>18 Yarmouth St #1</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2116</td>\n                \n                <td>2600000</td>\n                \n                <td>3</td>\n                \n                <td>3.5</td>\n                \n                <td>South End</td>\n                \n                <td>2522</td>\n                \n                <td>None</td>\n                \n                <td>1880</td>\n                \n                <td>88</td>\n                \n                <td>http://www.redfin.com/MA/Boston/18-Yarmouth-St-02116/unit-1/home/9313347</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>59168291</td>\n                \n                <td>42.3458731</td>\n                \n                <td>-71.0767967</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>128 Lowell St</td>\n                \n                <td>Lexington</td>\n                \n                <td>MA</td>\n                \n                <td>2420</td>\n                \n                <td>1185000</td>\n                \n                <td>5</td>\n                \n                <td>3.5</td>\n                \n                <td>Lexington</td>\n                \n                <td>3275</td>\n                \n                <td>6300</td>\n                \n                <td>2016</td>\n                \n                <td>88</td>\n                \n                <td>http://www.redfin.com/MA/Lexington/128-Lowell-St-02420/home/8553025</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>59375875</td>\n                \n                <td>42.436932</td>\n                \n                <td>-71.190511</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>20 Jackson Rd</td>\n                \n                <td>Wellesley</td>\n                \n                <td>MA</td>\n                \n                <td>2481</td>\n                \n                <td>2165000</td>\n                \n                <td>4</td>\n                \n                <td>4.5</td>\n                \n                <td>Wellesley</td>\n                \n                <td>5199</td>\n                \n                <td>16321</td>\n                \n                <td>2016</td>\n                \n                <td>88</td>\n                \n                <td>http://www.redfin.com/MA/Wellesley/20-Jackson-Rd-02481/home/8964864</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>51221892</td>\n                \n                <td>42.307657</td>\n                \n                <td>-71.252257</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>30 Winchester St #3</td>\n                \n                <td>Brookline</td>\n                \n                <td>MA</td>\n                \n                <td>2446</td>\n                \n                <td>1400000</td>\n                \n                <td>3</td>\n                \n                <td>3.0</td>\n                \n                <td>Coolidge Corner</td>\n                \n                <td>1504</td>\n                \n                <td>None</td>\n                \n                <td>1915</td>\n                \n                <td>66</td>\n                \n                <td>http://www.redfin.com/MA/Brookline/30-Winchester-St-02446/unit-3/home/105251020</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>58480309</td>\n                \n                <td>42.3420632</td>\n                \n                <td>-71.1257602</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>30 Winchester St #4</td>\n                \n                <td>Brookline</td>\n                \n                <td>MA</td>\n                \n                <td>2446</td>\n                \n                <td>1500000</td>\n                \n                <td>3</td>\n                \n                <td>3.0</td>\n                \n                <td>Coolidge Corner</td>\n                \n                <td>1584</td>\n                \n                <td>None</td>\n                \n                <td>1915</td>\n                \n                <td>66</td>\n                \n                <td>http://www.redfin.com/MA/Brookline/30-Winchester-St-02446/unit-4/home/105251022</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>58480311</td>\n                \n                <td>42.3420632</td>\n                \n                <td>-71.1257602</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>30 Winchester St #5</td>\n                \n                <td>Brookline</td>\n                \n                <td>MA</td>\n                \n                <td>2446</td>\n                \n                <td>1600000</td>\n                \n                <td>3</td>\n                \n                <td>3.0</td>\n                \n                <td>Coolidge Corner</td>\n                \n                <td>1686</td>\n                \n                <td>None</td>\n                \n                <td>1915</td>\n                \n                <td>66</td>\n                \n                <td>http://www.redfin.com/MA/Brookline/30-Winchester-St-02446/unit-5/home/105251023</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>58480312</td>\n                \n                <td>42.3420632</td>\n                \n                <td>-71.1257602</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>576 Washington St #206</td>\n                \n                <td>Wellesley</td>\n                \n                <td>MA</td>\n                \n                <td>2482</td>\n                \n                <td>2500000</td>\n                \n                <td>2</td>\n                \n                <td>2.5</td>\n                \n                <td>Wellesley</td>\n                \n                <td>2221</td>\n                \n                <td>None</td>\n                \n                <td>2015</td>\n                \n                <td>59</td>\n                \n                <td>http://www.redfin.com/MA/Wellesley/576-Washington-St-02482/unit-206/home/109083144</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>62060226</td>\n                \n                <td>42.295421</td>\n                \n                <td>-71.292739</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>2 Wellington Way</td>\n                \n                <td>Bedford</td>\n                \n                <td>MA</td>\n                \n                <td>1730</td>\n                \n                <td>1150000</td>\n                \n                <td>4</td>\n                \n                <td>3.5</td>\n                \n                <td>Wellington Way</td>\n                \n                <td>3531</td>\n                \n                <td>43560</td>\n                \n                <td>2012</td>\n                \n                <td>58</td>\n                \n                <td>http://www.redfin.com/MA/Bedford/2-Wellington-Way-01730/home/41363649</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>59806880</td>\n                \n                <td>42.5029123</td>\n                \n                <td>-71.2849657</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>267 Humphrey St #1</td>\n                \n                <td>Swampscott</td>\n                \n                <td>MA</td>\n                \n                <td>1907</td>\n                \n                <td>1700000</td>\n                \n                <td>3</td>\n                \n                <td>2.5</td>\n                \n                <td>Swampscott</td>\n                \n                <td>2140</td>\n                \n                <td>None</td>\n                \n                <td>2016</td>\n                \n                <td>58</td>\n                \n                <td>http://www.redfin.com/MA/Swampscott/267-Humphrey-St-01907/unit-1/home/105944789</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61004497</td>\n                \n                <td>42.466738</td>\n                \n                <td>-70.913681</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>1 Franklin St #3602</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2110</td>\n                \n                <td>2825000</td>\n                \n                <td>2</td>\n                \n                <td>2.5</td>\n                \n                <td>Midtown</td>\n                \n                <td>1486</td>\n                \n                <td>None</td>\n                \n                <td>2016</td>\n                \n                <td>59</td>\n                \n                <td>http://www.redfin.com/MA/Boston/1-Franklin-St-02108/unit-3602/home/108795642</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61519341</td>\n                \n                <td>42.35631</td>\n                \n                <td>-71.05945</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>33 Monument Sq #1</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2129</td>\n                \n                <td>1250000</td>\n                \n                <td>2</td>\n                \n                <td>3.0</td>\n                \n                <td>Charlestown</td>\n                \n                <td>1923</td>\n                \n                <td>None</td>\n                \n                <td>1896</td>\n                \n                <td>59</td>\n                \n                <td>http://www.redfin.com/MA/Boston/33-Monument-Sq-02129/unit-1/home/105149354</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>58437300</td>\n                \n                <td>42.3764066</td>\n                \n                <td>-71.0618387</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Townhouse</td>\n                \n                <td>343 Commercial St Unit TH20</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2109</td>\n                \n                <td>3100000</td>\n                \n                <td>2</td>\n                \n                <td>2.5</td>\n                \n                <td>Waterfront</td>\n                \n                <td>2290</td>\n                \n                <td>2290</td>\n                \n                <td>1978</td>\n                \n                <td>58</td>\n                \n                <td>http://www.redfin.com/MA/Boston/343-Commercial-St-02109/unit-TH20/home/105711342</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>59226234</td>\n                \n                <td>42.3658992</td>\n                \n                <td>-71.0511488</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>46 Shepard St #24</td>\n                \n                <td>Cambridge</td>\n                \n                <td>MA</td>\n                \n                <td>2138</td>\n                \n                <td>1120000</td>\n                \n                <td>3</td>\n                \n                <td>2.0</td>\n                \n                <td>Harvard Square</td>\n                \n                <td>1524</td>\n                \n                <td>None</td>\n                \n                <td>1900</td>\n                \n                <td>58</td>\n                \n                <td>http://www.redfin.com/MA/Cambridge/46-Shepard-St-02138/unit-24/home/11585901</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61655663</td>\n                \n                <td>42.3807083</td>\n                \n                <td>-71.123601</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>1 Franklin St #1808</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2110</td>\n                \n                <td>2038888</td>\n                \n                <td>2</td>\n                \n                <td>2.0</td>\n                \n                <td>Midtown</td>\n                \n                <td>1566</td>\n                \n                <td>None</td>\n                \n                <td>2016</td>\n                \n                <td>58</td>\n                \n                <td>http://www.redfin.com/MA/Boston/1-Franklin-St-02108/unit-1808/home/109247975</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>62369735</td>\n                \n                <td>42.35631</td>\n                \n                <td>-71.05945</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>117 Beacon St Unit A</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2116</td>\n                \n                <td>4750000</td>\n                \n                <td>4</td>\n                \n                <td>4.5</td>\n                \n                <td>Back Bay</td>\n                \n                <td>3052</td>\n                \n                <td>None</td>\n                \n                <td>1864</td>\n                \n                <td>58</td>\n                \n                <td>http://www.redfin.com/MA/Boston/117-Beacon-St-02116/unit-A/home/108973963</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61672595</td>\n                \n                <td>42.354921</td>\n                \n                <td>-71.073407</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>1 Franklin St #1008</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2110</td>\n                \n                <td>2049000</td>\n                \n                <td>2</td>\n                \n                <td>2.0</td>\n                \n                <td>Midtown</td>\n                \n                <td>1476</td>\n                \n                <td>None</td>\n                \n                <td>2016</td>\n                \n                <td>59</td>\n                \n                <td>http://www.redfin.com/MA/Boston/1-Franklin-St-02108/unit-1008/home/109481369</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>62725868</td>\n                \n                <td>42.35631</td>\n                \n                <td>-71.05945</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>341 Marlborough St #4</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2116</td>\n                \n                <td>3005000</td>\n                \n                <td>3</td>\n                \n                <td>3.0</td>\n                \n                <td>Back Bay</td>\n                \n                <td>1618</td>\n                \n                <td>None</td>\n                \n                <td>1900</td>\n                \n                <td>67</td>\n                \n                <td>http://www.redfin.com/MA/Boston/341-Marlborough-St-02115/unit-4/home/56787595</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61970237</td>\n                \n                <td>42.351212</td>\n                \n                <td>-71.085754</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>485-495 Harrison Ave #401</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2118</td>\n                \n                <td>1390000</td>\n                \n                <td>2</td>\n                \n                <td>2.0</td>\n                \n                <td>South End</td>\n                \n                <td>1409</td>\n                \n                <td>None</td>\n                \n                <td>1914</td>\n                \n                <td>67</td>\n                \n                <td>http://www.redfin.com/MA/Boston/495-Harrison-Ave-02118/unit-401/home/108978383</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61691728</td>\n                \n                <td>42.3417737</td>\n                \n                <td>-71.0667754</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>415 Concord Rd</td>\n                \n                <td>Weston</td>\n                \n                <td>MA</td>\n                \n                <td>2493</td>\n                \n                <td>1725000</td>\n                \n                <td>4</td>\n                \n                <td>3.5</td>\n                \n                <td>Weston</td>\n                \n                <td>3185</td>\n                \n                <td>217687</td>\n                \n                <td>1974</td>\n                \n                <td>59</td>\n                \n                <td>http://www.redfin.com/MA/Weston/415-Concord-Rd-02493/home/8779249</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>47855399</td>\n                \n                <td>42.386891</td>\n                \n                <td>-71.320689</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>18 Lorena Rd</td>\n                \n                <td>Winchester</td>\n                \n                <td>MA</td>\n                \n                <td>1890</td>\n                \n                <td>2375000</td>\n                \n                <td>6</td>\n                \n                <td>7.0</td>\n                \n                <td>Winchester</td>\n                \n                <td>5812</td>\n                \n                <td>11988</td>\n                \n                <td>2016</td>\n                \n                <td>67</td>\n                \n                <td>http://www.redfin.com/MA/Winchester/18-Lorena-Rd-01890/home/103985838</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>56019944</td>\n                \n                <td>42.4458374</td>\n                \n                <td>-71.1285051</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>1 Wilshire Rd</td>\n                \n                <td>Newbury</td>\n                \n                <td>MA</td>\n                \n                <td>1951</td>\n                \n                <td>2225000</td>\n                \n                <td>4</td>\n                \n                <td>5.5</td>\n                \n                <td>Wilshire Road</td>\n                \n                <td>4214</td>\n                \n                <td>18138</td>\n                \n                <td>2014</td>\n                \n                <td>58</td>\n                \n                <td>http://www.redfin.com/MA/Newbury/1-Wilshire-Rd-01951/home/105539600</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>59011440</td>\n                \n                <td>42.7796754</td>\n                \n                <td>-70.8476708</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>25 Lorena Rd</td>\n                \n                <td>Winchester</td>\n                \n                <td>MA</td>\n                \n                <td>1890</td>\n                \n                <td>2075000</td>\n                \n                <td>5</td>\n                \n                <td>4.5</td>\n                \n                <td>Winchester</td>\n                \n                <td>5600</td>\n                \n                <td>16820</td>\n                \n                <td>2016</td>\n                \n                <td>66</td>\n                \n                <td>http://www.redfin.com/MA/Winchester/25-Lorena-Rd-01890/home/108267308</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>60054516</td>\n                \n                <td>42.4456575</td>\n                \n                <td>-71.1279728</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>Lot 1 Monsen Rd</td>\n                \n                <td>Concord</td>\n                \n                <td>MA</td>\n                \n                <td>1742</td>\n                \n                <td>1454900</td>\n                \n                <td>4</td>\n                \n                <td>4.5</td>\n                \n                <td>Monsen Farm</td>\n                \n                <td>4555</td>\n                \n                <td>21509</td>\n                \n                <td>2015</td>\n                \n                <td>58</td>\n                \n                <td>http://www.redfin.com/MA/Concord/1-Monsen-Rd-01742/home/102153489</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>51940855</td>\n                \n                <td>42.4693342</td>\n                \n                <td>-71.3266466</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Townhouse</td>\n                \n                <td>170 Harvard St Unit 1</td>\n                \n                <td>Newton</td>\n                \n                <td>MA</td>\n                \n                <td>2460</td>\n                \n                <td>1100000</td>\n                \n                <td>4</td>\n                \n                <td>3.5</td>\n                \n                <td>Newtonville</td>\n                \n                <td>2388</td>\n                \n                <td>10089</td>\n                \n                <td>1910</td>\n                \n                <td>66</td>\n                \n                <td>http://www.redfin.com/MA/Newton/170-Harvard-St-02460/unit-1/home/109313528</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>62550577</td>\n                \n                <td>42.3468986</td>\n                \n                <td>-71.2005455</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>Zero Worcester Sq Ph 2</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2118</td>\n                \n                <td>1665000</td>\n                \n                <td>2</td>\n                \n                <td>2.5</td>\n                \n                <td>South End</td>\n                \n                <td>1515</td>\n                \n                <td>None</td>\n                \n                <td>2013</td>\n                \n                <td>58</td>\n                \n                <td>http://www.redfin.com/MA/Boston/0-Worcester-Sq-02118/unit-2/home/109286549</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>62470232</td>\n                \n                <td>42.3372471</td>\n                \n                <td>-71.0753519</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>1 Jerusalem Ln</td>\n                \n                <td>Cohasset</td>\n                \n                <td>MA</td>\n                \n                <td>2025</td>\n                \n                <td>1437000</td>\n                \n                <td>4</td>\n                \n                <td>3.5</td>\n                \n                <td>Jerusalem Road/Atlantic Avenue/Jerusalem Lane Cul De Sac</td>\n                \n                <td>2724</td>\n                \n                <td>9443</td>\n                \n                <td>2000</td>\n                \n                <td>66</td>\n                \n                <td>http://www.redfin.com/MA/Cohasset/1-Jerusalem-Ln-02025/home/8835487</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>60777396</td>\n                \n                <td>42.259862</td>\n                \n                <td>-70.811424</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>183 Massachusetts Ave #803</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2115</td>\n                \n                <td>1082500</td>\n                \n                <td>2</td>\n                \n                <td>2.0</td>\n                \n                <td>Back Bay</td>\n                \n                <td>1220</td>\n                \n                <td>None</td>\n                \n                <td>2002</td>\n                \n                <td>74</td>\n                \n                <td>http://www.redfin.com/MA/Boston/183-Massachusetts-Ave-02115/unit-803/home/12402725</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>62071287</td>\n                \n                <td>42.3455392</td>\n                \n                <td>-71.0871356</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Townhouse</td>\n                \n                <td>31 Day St Unit B</td>\n                \n                <td>Somerville</td>\n                \n                <td>MA</td>\n                \n                <td>2144</td>\n                \n                <td>1351000</td>\n                \n                <td>3</td>\n                \n                <td>3.0</td>\n                \n                <td>Davis Square</td>\n                \n                <td>1874</td>\n                \n                <td>None</td>\n                \n                <td>2012</td>\n                \n                <td>88</td>\n                \n                <td>http://www.redfin.com/MA/Somerville/31-Day-St-02144/unit-B/home/40314152</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61798074</td>\n                \n                <td>42.3951863</td>\n                \n                <td>-71.1242988</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>83 Newton St</td>\n                \n                <td>Somerville</td>\n                \n                <td>MA</td>\n                \n                <td>2143</td>\n                \n                <td>1240000</td>\n                \n                <td>8</td>\n                \n                <td>4.0</td>\n                \n                <td></td>\n                \n                <td>4034</td>\n                \n                <td>None</td>\n                \n                <td>1900</td>\n                \n                <td>None</td>\n                \n                <td>http://www.redfin.com/MA/Somerville/83-Newton-St-02143/home/8730062</td>\n                \n                <td></td>\n                \n                <td>None</td>\n                \n                <td>42.3771375</td>\n                \n                <td>-71.0976651</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>34 Crestwood Rd</td>\n                \n                <td>Marblehead</td>\n                \n                <td>MA</td>\n                \n                <td>1945</td>\n                \n                <td>2997000</td>\n                \n                <td>1</td>\n                \n                <td>5.0</td>\n                \n                <td></td>\n                \n                <td>8509</td>\n                \n                <td>34400</td>\n                \n                <td>2012</td>\n                \n                <td>None</td>\n                \n                <td>http://www.redfin.com/MA/Marblehead/34-Crestwood-Rd-01945/home/11768413</td>\n                \n                <td></td>\n                \n                <td>None</td>\n                \n                <td>42.501777</td>\n                \n                <td>-70.877002</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>78 Bonad Rd</td>\n                \n                <td>Brookline</td>\n                \n                <td>MA</td>\n                \n                <td>2467</td>\n                \n                <td>1070000</td>\n                \n                <td>3</td>\n                \n                <td>2.5</td>\n                \n                <td>South Brookline</td>\n                \n                <td>1806</td>\n                \n                <td>4982</td>\n                \n                <td>2016</td>\n                \n                <td>71</td>\n                \n                <td>http://www.redfin.com/MA/Brookline/78-Bonad-Rd-02467/home/109052310</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61948749</td>\n                \n                <td>42.3178198</td>\n                \n                <td>-71.1626756</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>217 Forest St</td>\n                \n                <td>Winchester</td>\n                \n                <td>MA</td>\n                \n                <td>1890</td>\n                \n                <td>1155000</td>\n                \n                <td>4</td>\n                \n                <td>3.5</td>\n                \n                <td>Muraco School District</td>\n                \n                <td>3779</td>\n                \n                <td>9234</td>\n                \n                <td>2013</td>\n                \n                <td>72</td>\n                \n                <td>http://www.redfin.com/MA/Winchester/217-Forest-St-01890/home/110057079</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>56198065</td>\n                \n                <td>42.4714541</td>\n                \n                <td>-71.1156268</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>31 Mussell Point Way</td>\n                \n                <td>Gloucester</td>\n                \n                <td>MA</td>\n                \n                <td>1930</td>\n                \n                <td>2075000</td>\n                \n                <td>3</td>\n                \n                <td>3.5</td>\n                \n                <td></td>\n                \n                <td>2878</td>\n                \n                <td>39400</td>\n                \n                <td>2001</td>\n                \n                <td>None</td>\n                \n                <td>http://www.redfin.com/MA/Gloucester/31-Mussell-Point-Way-01930/home/11301633</td>\n                \n                <td></td>\n                \n                <td>None</td>\n                \n                <td>42.586906</td>\n                \n                <td>-70.687225</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>25 Piedmont St #2</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2116</td>\n                \n                <td>1660000</td>\n                \n                <td>2</td>\n                \n                <td>2.0</td>\n                \n                <td>South End</td>\n                \n                <td>1328</td>\n                \n                <td>None</td>\n                \n                <td>2015</td>\n                \n                <td>70</td>\n                \n                <td>http://www.redfin.com/MA/Boston/25-Piedmont-St-02116/unit-2/home/109296598</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>62502554</td>\n                \n                <td>42.3498964</td>\n                \n                <td>-71.0684372</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>1 Denny St</td>\n                \n                <td>Westborough</td>\n                \n                <td>MA</td>\n                \n                <td>1581</td>\n                \n                <td>1100000</td>\n                \n                <td>6</td>\n                \n                <td>3.5</td>\n                \n                <td>Westborough</td>\n                \n                <td>3394</td>\n                \n                <td>239580</td>\n                \n                <td>1917</td>\n                \n                <td>79</td>\n                \n                <td>http://www.redfin.com/MA/Westborough/1-Denny-St-01581/home/16634032</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>60054100</td>\n                \n                <td>42.259306</td>\n                \n                <td>-71.611866</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>192 Claybrook Rd</td>\n                \n                <td>Dover</td>\n                \n                <td>MA</td>\n                \n                <td>2030</td>\n                \n                <td>3780000</td>\n                \n                <td>5</td>\n                \n                <td>7.5</td>\n                \n                <td>Dover</td>\n                \n                <td>11500</td>\n                \n                <td>110016</td>\n                \n                <td>2000</td>\n                \n                <td>81</td>\n                \n                <td>http://www.redfin.com/MA/Dover/192-Claybrook-Rd-02030/home/11706025</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>57585881</td>\n                \n                <td>42.2640769</td>\n                \n                <td>-71.3030216</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>36 Mount Vernon St #36</td>\n                \n                <td>Cambridge</td>\n                \n                <td>MA</td>\n                \n                <td>2140</td>\n                \n                <td>1460000</td>\n                \n                <td>4</td>\n                \n                <td>2.0</td>\n                \n                <td>Cambridge</td>\n                \n                <td>2006</td>\n                \n                <td>None</td>\n                \n                <td>1873</td>\n                \n                <td>78</td>\n                \n                <td>http://www.redfin.com/MA/Cambridge/36-Mount-Vernon-St-02140/unit-36/home/109048192</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61935510</td>\n                \n                <td>42.3869743</td>\n                \n                <td>-71.1206802</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>67 Harvard Ave #67</td>\n                \n                <td>Brookline</td>\n                \n                <td>MA</td>\n                \n                <td>2446</td>\n                \n                <td>1789000</td>\n                \n                <td>3</td>\n                \n                <td>3.5</td>\n                \n                <td></td>\n                \n                <td>3584</td>\n                \n                <td>None</td>\n                \n                <td>1909</td>\n                \n                <td>None</td>\n                \n                <td>http://www.redfin.com/MA/Brookline/67-Harvard-Ave-02446/unit-67/home/26768959</td>\n                \n                <td></td>\n                \n                <td>None</td>\n                \n                <td>42.3370986</td>\n                \n                <td>-71.1238246</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Townhouse</td>\n                \n                <td>7 Marlborough St #1</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2116</td>\n                \n                <td>2570000</td>\n                \n                <td>3</td>\n                \n                <td>3.5</td>\n                \n                <td>Back Bay</td>\n                \n                <td>2179</td>\n                \n                <td>2179</td>\n                \n                <td>1900</td>\n                \n                <td>88</td>\n                \n                <td>http://www.redfin.com/MA/Boston/7-Marlborough-St-02116/unit-1/home/9299190</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>59800618</td>\n                \n                <td>42.354279</td>\n                \n                <td>-71.072681</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>78 Waltham St #3</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2118</td>\n                \n                <td>1135000</td>\n                \n                <td>2</td>\n                \n                <td>1.0</td>\n                \n                <td></td>\n                \n                <td>850</td>\n                \n                <td>None</td>\n                \n                <td>1900</td>\n                \n                <td>None</td>\n                \n                <td>http://www.redfin.com/MA/Boston/78-Waltham-St-02118/unit-3/home/9310881</td>\n                \n                <td></td>\n                \n                <td>None</td>\n                \n                <td>42.343133</td>\n                \n                <td>-71.0706771</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>32 Union Park #4</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2118</td>\n                \n                <td>1235000</td>\n                \n                <td>2</td>\n                \n                <td>2.0</td>\n                \n                <td></td>\n                \n                <td>1028</td>\n                \n                <td>None</td>\n                \n                <td>1900</td>\n                \n                <td>None</td>\n                \n                <td>http://www.redfin.com/MA/Boston/32-Union-Park-02118/unit-4/home/9282029</td>\n                \n                <td></td>\n                \n                <td>None</td>\n                \n                <td>42.3429262</td>\n                \n                <td>-71.0717198</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>109 Chandler St #1</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2116</td>\n                \n                <td>1925000</td>\n                \n                <td>3</td>\n                \n                <td>3.5</td>\n                \n                <td></td>\n                \n                <td>1803</td>\n                \n                <td>None</td>\n                \n                <td>1900</td>\n                \n                <td>None</td>\n                \n                <td>http://www.redfin.com/MA/Boston/109-Chandler-St-02116/unit-1/home/9322251</td>\n                \n                <td></td>\n                \n                <td>None</td>\n                \n                <td>42.3464393</td>\n                \n                <td>-71.0736695</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>141 Dorchester Ave #119</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2127</td>\n                \n                <td>1150000</td>\n                \n                <td>2</td>\n                \n                <td>2.0</td>\n                \n                <td>South Boston</td>\n                \n                <td>1701</td>\n                \n                <td>1701</td>\n                \n                <td>2006</td>\n                \n                <td>78</td>\n                \n                <td>http://www.redfin.com/MA/Boston/141-Dorchester-Ave-02127/unit-119/home/18982472</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>59722577</td>\n                \n                <td>42.3419516</td>\n                \n                <td>-71.0574969</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Townhouse</td>\n                \n                <td>113 Commonwealth Ave #4</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2116</td>\n                \n                <td>2330000</td>\n                \n                <td>3</td>\n                \n                <td>2.5</td>\n                \n                <td>Back Bay</td>\n                \n                <td>1884</td>\n                \n                <td>1884</td>\n                \n                <td>1930</td>\n                \n                <td>78</td>\n                \n                <td>http://www.redfin.com/MA/Boston/113-Commonwealth-Ave-02116/unit-4/home/9250390</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61017855</td>\n                \n                <td>42.3524353</td>\n                \n                <td>-71.0770045</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>75 Brookline St</td>\n                \n                <td>Cambridge</td>\n                \n                <td>MA</td>\n                \n                <td>2139</td>\n                \n                <td>1399900</td>\n                \n                <td>3</td>\n                \n                <td>2.5</td>\n                \n                <td>Cambridgeport</td>\n                \n                <td>1810</td>\n                \n                <td>3016</td>\n                \n                <td>1854</td>\n                \n                <td>79</td>\n                \n                <td>http://www.redfin.com/MA/Cambridge/75-Brookline-St-02139/home/11558783</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>59593814</td>\n                \n                <td>42.3620583</td>\n                \n                <td>-71.1033835</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>23 Laurel Hill Ln</td>\n                \n                <td>Winchester</td>\n                \n                <td>MA</td>\n                \n                <td>1890</td>\n                \n                <td>1475000</td>\n                \n                <td>5</td>\n                \n                <td>4.0</td>\n                \n                <td>Winchester</td>\n                \n                <td>4037</td>\n                \n                <td>12475</td>\n                \n                <td>2014</td>\n                \n                <td>80</td>\n                \n                <td>http://www.redfin.com/MA/Winchester/23-Laurel-Hill-Ln-01890/home/11439968</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>58047231</td>\n                \n                <td>42.4724111</td>\n                \n                <td>-71.1196572</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>14 Hillside Ave</td>\n                \n                <td>Cambridge</td>\n                \n                <td>MA</td>\n                \n                <td>2140</td>\n                \n                <td>5350000</td>\n                \n                <td>3</td>\n                \n                <td>2.5</td>\n                \n                <td></td>\n                \n                <td>4557</td>\n                \n                <td>15526</td>\n                \n                <td>1905</td>\n                \n                <td>None</td>\n                \n                <td>http://www.redfin.com/MA/Cambridge/14-Hillside-Ave-02140/home/110093849</td>\n                \n                <td></td>\n                \n                <td>None</td>\n                \n                <td>42.3853181</td>\n                \n                <td>-71.1238296</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>22 Garfield Rd</td>\n                \n                <td>Belmont</td>\n                \n                <td>MA</td>\n                \n                <td>2478</td>\n                \n                <td>1560000</td>\n                \n                <td>5</td>\n                \n                <td>3.5</td>\n                \n                <td>Belmont</td>\n                \n                <td>3137</td>\n                \n                <td>12614</td>\n                \n                <td>1936</td>\n                \n                <td>80</td>\n                \n                <td>http://www.redfin.com/MA/Belmont/22-Garfield-Rd-02478/home/8452209</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61669441</td>\n                \n                <td>42.4033462</td>\n                \n                <td>-71.1745363</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>721 Pleasant St</td>\n                \n                <td>Belmont</td>\n                \n                <td>MA</td>\n                \n                <td>2478</td>\n                \n                <td>1480000</td>\n                \n                <td>7</td>\n                \n                <td>5.0</td>\n                \n                <td>Belmont Center</td>\n                \n                <td>6000</td>\n                \n                <td>43900</td>\n                \n                <td>1837</td>\n                \n                <td>78</td>\n                \n                <td>http://www.redfin.com/MA/Belmont/721-Pleasant-St-02478/home/11774971</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61594748</td>\n                \n                <td>42.39572</td>\n                \n                <td>-71.179743</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>129 I St</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2127</td>\n                \n                <td>1290000</td>\n                \n                <td>4</td>\n                \n                <td>2.5</td>\n                \n                <td>South Boston</td>\n                \n                <td>2385</td>\n                \n                <td>None</td>\n                \n                <td>1890</td>\n                \n                <td>77</td>\n                \n                <td>http://www.redfin.com/MA/Boston/129-I-St-02127/home/9187855</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>59630321</td>\n                \n                <td>42.3337549</td>\n                \n                <td>-71.040101</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>20 Authors Rd</td>\n                \n                <td>Concord</td>\n                \n                <td>MA</td>\n                \n                <td>1742</td>\n                \n                <td>1935000</td>\n                \n                <td>4</td>\n                \n                <td>4.0</td>\n                \n                <td>Concord</td>\n                \n                <td>5010</td>\n                \n                <td>25102</td>\n                \n                <td>2016</td>\n                \n                <td>80</td>\n                \n                <td>http://www.redfin.com/MA/Concord/20-Authors-Rd-01742/home/11594499</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>57898084</td>\n                \n                <td>42.461323</td>\n                \n                <td>-71.338927</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>297 Heaths Bridge Rd</td>\n                \n                <td>Concord</td>\n                \n                <td>MA</td>\n                \n                <td>1742</td>\n                \n                <td>1400000</td>\n                \n                <td>3</td>\n                \n                <td>3.0</td>\n                \n                <td>Conantum</td>\n                \n                <td>5135</td>\n                \n                <td>61344</td>\n                \n                <td>1995</td>\n                \n                <td>78</td>\n                \n                <td>http://www.redfin.com/MA/Concord/297-Heaths-Bridge-Rd-01742/home/11600408</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61928887</td>\n                \n                <td>42.434909</td>\n                \n                <td>-71.362825</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>73 Monument St</td>\n                \n                <td>Concord</td>\n                \n                <td>MA</td>\n                \n                <td>1742</td>\n                \n                <td>2250000</td>\n                \n                <td>5</td>\n                \n                <td>4.0</td>\n                \n                <td>Concord</td>\n                \n                <td>3799</td>\n                \n                <td>40075</td>\n                \n                <td>1880</td>\n                \n                <td>78</td>\n                \n                <td>http://www.redfin.com/MA/Concord/73-Monument-St-01742/home/11590552</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>57869520</td>\n                \n                <td>42.463184</td>\n                \n                <td>-71.348692</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>162 Highland St</td>\n                \n                <td>Weston</td>\n                \n                <td>MA</td>\n                \n                <td>2493</td>\n                \n                <td>4800000</td>\n                \n                <td>5</td>\n                \n                <td>5.0</td>\n                \n                <td>South side Estate Area</td>\n                \n                <td>6741</td>\n                \n                <td>129260</td>\n                \n                <td>2001</td>\n                \n                <td>80</td>\n                \n                <td>http://www.redfin.com/MA/Weston/162-Highland-St-02493/home/8775137</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>58298305</td>\n                \n                <td>42.355043</td>\n                \n                <td>-71.319191</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>12 Thoreau Rd</td>\n                \n                <td>Lexington</td>\n                \n                <td>MA</td>\n                \n                <td>2420</td>\n                \n                <td>1403000</td>\n                \n                <td>4</td>\n                \n                <td>2.0</td>\n                \n                <td>Burnham Farms Estates</td>\n                \n                <td>2263</td>\n                \n                <td>38712</td>\n                \n                <td>1959</td>\n                \n                <td>81</td>\n                \n                <td>http://www.redfin.com/MA/Lexington/12-Thoreau-Rd-02420/home/8577537</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61594796</td>\n                \n                <td>42.463883</td>\n                \n                <td>-71.211304</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>229 Manning St</td>\n                \n                <td>Needham</td>\n                \n                <td>MA</td>\n                \n                <td>2492</td>\n                \n                <td>1660706</td>\n                \n                <td>4</td>\n                \n                <td>1.5</td>\n                \n                <td></td>\n                \n                <td>1678</td>\n                \n                <td>10454</td>\n                \n                <td>1949</td>\n                \n                <td>None</td>\n                \n                <td>http://www.redfin.com/MA/Needham/229-Manning-St-02492/home/8914592</td>\n                \n                <td></td>\n                \n                <td>None</td>\n                \n                <td>42.2863162</td>\n                \n                <td>-71.2283038</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>252 Manning St</td>\n                \n                <td>Needham</td>\n                \n                <td>MA</td>\n                \n                <td>2492</td>\n                \n                <td>1649000</td>\n                \n                <td>5</td>\n                \n                <td>5.5</td>\n                \n                <td>Needham</td>\n                \n                <td>6163</td>\n                \n                <td>9583</td>\n                \n                <td>2016</td>\n                \n                <td>78</td>\n                \n                <td>http://www.redfin.com/MA/Needham/252-Manning-St-02492/home/8914358</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61580545</td>\n                \n                <td>42.285505</td>\n                \n                <td>-71.227655</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>228 Upham St</td>\n                \n                <td>Melrose</td>\n                \n                <td>MA</td>\n                \n                <td>2176</td>\n                \n                <td>1500000</td>\n                \n                <td>7</td>\n                \n                <td>4.5</td>\n                \n                <td>East Side</td>\n                \n                <td>6639</td>\n                \n                <td>23418</td>\n                \n                <td>1908</td>\n                \n                <td>79</td>\n                \n                <td>http://www.redfin.com/MA/Melrose/228-Upham-St-02176/home/11783107</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61488166</td>\n                \n                <td>42.458383</td>\n                \n                <td>-71.054305</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>26 Coolidge Hill Rd</td>\n                \n                <td>Cambridge</td>\n                \n                <td>MA</td>\n                \n                <td>2138</td>\n                \n                <td>1225000</td>\n                \n                <td>3</td>\n                \n                <td>2.5</td>\n                \n                <td></td>\n                \n                <td>2682</td>\n                \n                <td>4615</td>\n                \n                <td>1925</td>\n                \n                <td>None</td>\n                \n                <td>http://www.redfin.com/MA/Cambridge/26-Coolidge-Hill-Rd-02138/home/11594928</td>\n                \n                <td></td>\n                \n                <td>None</td>\n                \n                <td>42.374227</td>\n                \n                <td>-71.1395469</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>221 Mount Auburn St #302</td>\n                \n                <td>Cambridge</td>\n                \n                <td>MA</td>\n                \n                <td>2138</td>\n                \n                <td>1110000</td>\n                \n                <td>1</td>\n                \n                <td>1.0</td>\n                \n                <td>Harvard Square</td>\n                \n                <td>988</td>\n                \n                <td>None</td>\n                \n                <td>1960</td>\n                \n                <td>79</td>\n                \n                <td>http://www.redfin.com/MA/Cambridge/221-Mount-Auburn-St-02138/unit-302/home/11587449</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>59440749</td>\n                \n                <td>42.3749516</td>\n                \n                <td>-71.129983</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>197 Countryside Rd</td>\n                \n                <td>Newton</td>\n                \n                <td>MA</td>\n                \n                <td>2459</td>\n                \n                <td>1415000</td>\n                \n                <td>4</td>\n                \n                <td>2.5</td>\n                \n                <td>Newton Center</td>\n                \n                <td>2764</td>\n                \n                <td>25878</td>\n                \n                <td>1979</td>\n                \n                <td>80</td>\n                \n                <td>http://www.redfin.com/MA/Newton/197-Countryside-Rd-02459/home/11490231</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61707285</td>\n                \n                <td>42.304059</td>\n                \n                <td>-71.2010034</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>321 Central St</td>\n                \n                <td>Newton</td>\n                \n                <td>MA</td>\n                \n                <td>2466</td>\n                \n                <td>1030000</td>\n                \n                <td>4</td>\n                \n                <td>2.5</td>\n                \n                <td>Newton</td>\n                \n                <td>2724</td>\n                \n                <td>30033</td>\n                \n                <td>1874</td>\n                \n                <td>81</td>\n                \n                <td>http://www.redfin.com/MA/Newton/321-Central-St-02466/home/11440793</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>59477712</td>\n                \n                <td>42.3428608</td>\n                \n                <td>-71.2532636</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>13 Utica Rd</td>\n                \n                <td>Needham</td>\n                \n                <td>MA</td>\n                \n                <td>2494</td>\n                \n                <td>1131250</td>\n                \n                <td>4</td>\n                \n                <td>2.5</td>\n                \n                <td>Needham</td>\n                \n                <td>3923</td>\n                \n                <td>9000</td>\n                \n                <td>2005</td>\n                \n                <td>78</td>\n                \n                <td>http://www.redfin.com/MA/Needham/13-Utica-Rd-02494/home/11714925</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61553852</td>\n                \n                <td>42.2994493</td>\n                \n                <td>-71.2294273</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>6 Sawyer Rd</td>\n                \n                <td>Wellesley</td>\n                \n                <td>MA</td>\n                \n                <td>2481</td>\n                \n                <td>2745000</td>\n                \n                <td>5</td>\n                \n                <td>8.0</td>\n                \n                <td>Cliff Estates</td>\n                \n                <td>7000</td>\n                \n                <td>20000</td>\n                \n                <td>2014</td>\n                \n                <td>81</td>\n                \n                <td>http://www.redfin.com/MA/Wellesley/6-Sawyer-Rd-02481/home/8976461</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>59710146</td>\n                \n                <td>42.311576</td>\n                \n                <td>-71.280358</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>22 Leighton Rd</td>\n                \n                <td>Wellesley</td>\n                \n                <td>MA</td>\n                \n                <td>2482</td>\n                \n                <td>1530000</td>\n                \n                <td>5</td>\n                \n                <td>3.5</td>\n                \n                <td>Dana Hall</td>\n                \n                <td>3574</td>\n                \n                <td>10000</td>\n                \n                <td>1916</td>\n                \n                <td>78</td>\n                \n                <td>http://www.redfin.com/MA/Wellesley/22-Leighton-Rd-02482/home/8986596</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>59747229</td>\n                \n                <td>42.290604</td>\n                \n                <td>-71.295376</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>123 Abbott Rd</td>\n                \n                <td>Wellesley</td>\n                \n                <td>MA</td>\n                \n                <td>2481</td>\n                \n                <td>2184000</td>\n                \n                <td>6</td>\n                \n                <td>5.5</td>\n                \n                <td>Country Club</td>\n                \n                <td>6119</td>\n                \n                <td>34050</td>\n                \n                <td>1905</td>\n                \n                <td>78</td>\n                \n                <td>http://www.redfin.com/MA/Wellesley/123-Abbott-Rd-02481/home/11724812</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>56084352</td>\n                \n                <td>42.303269</td>\n                \n                <td>-71.267922</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>46 White Oak Rd</td>\n                \n                <td>Wellesley</td>\n                \n                <td>MA</td>\n                \n                <td>2481</td>\n                \n                <td>1630000</td>\n                \n                <td>5</td>\n                \n                <td>3.5</td>\n                \n                <td>Wellesley</td>\n                \n                <td>2777</td>\n                \n                <td>27440</td>\n                \n                <td>1946</td>\n                \n                <td>78</td>\n                \n                <td>http://www.redfin.com/MA/Wellesley/46-White-Oak-Rd-02481/home/8978449</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>60874162</td>\n                \n                <td>42.323326</td>\n                \n                <td>-71.286699</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>94 Albion Rd</td>\n                \n                <td>Wellesley</td>\n                \n                <td>MA</td>\n                \n                <td>2481</td>\n                \n                <td>1457500</td>\n                \n                <td>4</td>\n                \n                <td>3.5</td>\n                \n                <td>Cliff Estates</td>\n                \n                <td>2918</td>\n                \n                <td>26021</td>\n                \n                <td>1978</td>\n                \n                <td>81</td>\n                \n                <td>http://www.redfin.com/MA/Wellesley/94-Albion-Rd-02481/home/8984365</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>58888275</td>\n                \n                <td>42.315699</td>\n                \n                <td>-71.291925</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>79 Overlook Dr</td>\n                \n                <td>Carlisle</td>\n                \n                <td>MA</td>\n                \n                <td>1741</td>\n                \n                <td>1080000</td>\n                \n                <td>4</td>\n                \n                <td>3.5</td>\n                \n                <td>Carlisle</td>\n                \n                <td>3800</td>\n                \n                <td>182516</td>\n                \n                <td>1997</td>\n                \n                <td>87</td>\n                \n                <td>http://www.redfin.com/MA/Carlisle/79-Overlook-Dr-01741/home/8467988</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>60090312</td>\n                \n                <td>42.544212</td>\n                \n                <td>-71.330903</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>3 Grey Ln</td>\n                \n                <td>Lynnfield</td>\n                \n                <td>MA</td>\n                \n                <td>1940</td>\n                \n                <td>1050000</td>\n                \n                <td>5</td>\n                \n                <td>3.5</td>\n                \n                <td>King James Grant</td>\n                \n                <td>4500</td>\n                \n                <td>40140</td>\n                \n                <td>1960</td>\n                \n                <td>87</td>\n                \n                <td>http://www.redfin.com/MA/Lynnfield/3-Grey-Ln-01940/home/11330976</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61233631</td>\n                \n                <td>42.542049</td>\n                \n                <td>-71.031766</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>6 Bennett Rd</td>\n                \n                <td>Wayland</td>\n                \n                <td>MA</td>\n                \n                <td>1778</td>\n                \n                <td>1100000</td>\n                \n                <td>4</td>\n                \n                <td>3.0</td>\n                \n                <td>Wayland</td>\n                \n                <td>3768</td>\n                \n                <td>35840</td>\n                \n                <td>1893</td>\n                \n                <td>87</td>\n                \n                <td>http://www.redfin.com/MA/Wayland/6-Bennett-Rd-01778/home/11685599</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>59097036</td>\n                \n                <td>42.36189</td>\n                \n                <td>-71.353183</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>10 Bowdoin St #417</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2114</td>\n                \n                <td>1050000</td>\n                \n                <td>2</td>\n                \n                <td>2.0</td>\n                \n                <td>Beacon Hill</td>\n                \n                <td>1139</td>\n                \n                <td>1306</td>\n                \n                <td>2003</td>\n                \n                <td>87</td>\n                \n                <td>http://www.redfin.com/MA/Boston/10-Bowdoin-St-02114/unit-417/home/11837836</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61320832</td>\n                \n                <td>42.3607583</td>\n                \n                <td>-71.062671</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Townhouse</td>\n                \n                <td>9 Joy St #3</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2114</td>\n                \n                <td>1175000</td>\n                \n                <td>2</td>\n                \n                <td>1.0</td>\n                \n                <td></td>\n                \n                <td>1250</td>\n                \n                <td>1250</td>\n                \n                <td>1890</td>\n                \n                <td>None</td>\n                \n                <td>http://www.redfin.com/MA/Boston/9-Joy-St-02114/unit-3/home/9236297</td>\n                \n                <td></td>\n                \n                <td>None</td>\n                \n                <td>42.3587067</td>\n                \n                <td>-71.0649545</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>1 Garden St Unit 12</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2114</td>\n                \n                <td>1592500</td>\n                \n                <td>3</td>\n                \n                <td>2.0</td>\n                \n                <td></td>\n                \n                <td>1435</td>\n                \n                <td>None</td>\n                \n                <td>1899</td>\n                \n                <td>None</td>\n                \n                <td>http://www.redfin.com/MA/Boston/1-Garden-St-02114/unit-12/home/9329550</td>\n                \n                <td></td>\n                \n                <td>None</td>\n                \n                <td>42.3611202</td>\n                \n                <td>-71.066975</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>210 Meadowbrook Rd</td>\n                \n                <td>Weston</td>\n                \n                <td>MA</td>\n                \n                <td>2493</td>\n                \n                <td>3938000</td>\n                \n                <td>4</td>\n                \n                <td>5.0</td>\n                \n                <td>Weston</td>\n                \n                <td>6300</td>\n                \n                <td>60000</td>\n                \n                <td>1961</td>\n                \n                <td>87</td>\n                \n                <td>http://www.redfin.com/MA/Weston/210-Meadowbrook-Rd-02493/home/8785940</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>59777195</td>\n                \n                <td>42.358451</td>\n                \n                <td>-71.282983</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>8 Hidden Rd</td>\n                \n                <td>Weston</td>\n                \n                <td>MA</td>\n                \n                <td>2493</td>\n                \n                <td>1700000</td>\n                \n                <td>5</td>\n                \n                <td>4.0</td>\n                \n                <td>Country Club</td>\n                \n                <td>4160</td>\n                \n                <td>71326</td>\n                \n                <td>1926</td>\n                \n                <td>85</td>\n                \n                <td>http://www.redfin.com/MA/Weston/8-Hidden-Rd-02493/home/8784603</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>59640638</td>\n                \n                <td>42.362089</td>\n                \n                <td>-71.286346</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>12 Museum Way #2304</td>\n                \n                <td>Cambridge</td>\n                \n                <td>MA</td>\n                \n                <td>2141</td>\n                \n                <td>1175000</td>\n                \n                <td>2</td>\n                \n                <td>2.0</td>\n                \n                <td></td>\n                \n                <td>1266</td>\n                \n                <td>None</td>\n                \n                <td>1998</td>\n                \n                <td>None</td>\n                \n                <td>http://www.redfin.com/MA/Cambridge/12-Museum-Way-02141/unit-2304/home/11602082</td>\n                \n                <td></td>\n                \n                <td>None</td>\n                \n                <td>42.3703968</td>\n                \n                <td>-71.0712157</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>1 Franklin St Ph 1A</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2110</td>\n                \n                <td>7995000</td>\n                \n                <td>3</td>\n                \n                <td>4.5</td>\n                \n                <td>Midtown</td>\n                \n                <td>3172</td>\n                \n                <td>None</td>\n                \n                <td>2016</td>\n                \n                <td>60</td>\n                \n                <td>http://www.redfin.com/MA/Boston/1-Franklin-St-02108/unit-1A/home/101613053</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>50956978</td>\n                \n                <td>42.35631</td>\n                \n                <td>-71.05945</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>41 Milford St #2</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2118</td>\n                \n                <td>2175000</td>\n                \n                <td>3</td>\n                \n                <td>2.5</td>\n                \n                <td>South End</td>\n                \n                <td>2150</td>\n                \n                <td>2150</td>\n                \n                <td>1890</td>\n                \n                <td>84</td>\n                \n                <td>http://www.redfin.com/MA/Boston/41-Milford-St-02118/unit-2/home/28465481</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61799764</td>\n                \n                <td>42.344312</td>\n                \n                <td>-71.069765</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>250 Boylston St Unit 5</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2116</td>\n                \n                <td>11500000</td>\n                \n                <td>4</td>\n                \n                <td>4.5</td>\n                \n                <td></td>\n                \n                <td>4841</td>\n                \n                <td>None</td>\n                \n                <td>1900</td>\n                \n                <td>None</td>\n                \n                <td>http://www.redfin.com/MA/Boston/250-Boylston-St-02116/unit-5/home/9313437</td>\n                \n                <td></td>\n                \n                <td>None</td>\n                \n                <td>42.351883</td>\n                \n                <td>-71.0693583</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>137 Marlborough St #6</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2116</td>\n                \n                <td>2950000</td>\n                \n                <td>3</td>\n                \n                <td>3.0</td>\n                \n                <td>Back Bay</td>\n                \n                <td>2128</td>\n                \n                <td>2128</td>\n                \n                <td>1930</td>\n                \n                <td>84</td>\n                \n                <td>http://www.redfin.com/MA/Boston/137-Marlborough-St-02116/unit-6/home/9250255</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>62113842</td>\n                \n                <td>42.3531759</td>\n                \n                <td>-71.078579</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>128 Beacon St Unit G</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2116</td>\n                \n                <td>3395000</td>\n                \n                <td>2</td>\n                \n                <td>2.5</td>\n                \n                <td>Back Bay</td>\n                \n                <td>2170</td>\n                \n                <td>None</td>\n                \n                <td>1899</td>\n                \n                <td>87</td>\n                \n                <td>http://www.redfin.com/MA/Boston/128-Beacon-St-02116/unit-G/home/11838759</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61916911</td>\n                \n                <td>42.35518</td>\n                \n                <td>-71.074644</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>65 E India Row Apt 17A</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2110</td>\n                \n                <td>2050000</td>\n                \n                <td>1</td>\n                \n                <td>1.0</td>\n                \n                <td></td>\n                \n                <td>754</td>\n                \n                <td>None</td>\n                \n                <td>1972</td>\n                \n                <td>None</td>\n                \n                <td>http://www.redfin.com/MA/Boston/65-E-India-Row-02110/unit-17A/home/9260829</td>\n                \n                <td></td>\n                \n                <td>None</td>\n                \n                <td>42.3576699</td>\n                \n                <td>-71.0504859</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>110 Stuart St Unit 25J</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2116</td>\n                \n                <td>1110000</td>\n                \n                <td>1</td>\n                \n                <td>1.5</td>\n                \n                <td>Midtown</td>\n                \n                <td>1103</td>\n                \n                <td>None</td>\n                \n                <td>2009</td>\n                \n                <td>88</td>\n                \n                <td>http://www.redfin.com/MA/Boston/110-Stuart-St-02116/unit-25J/home/39913276</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>60206455</td>\n                \n                <td>42.3509321</td>\n                \n                <td>-71.0653685</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>165 Tremont St Unit 1502</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2111</td>\n                \n                <td>2365000</td>\n                \n                <td>2</td>\n                \n                <td>2.0</td>\n                \n                <td></td>\n                \n                <td>1054</td>\n                \n                <td>None</td>\n                \n                <td>2003</td>\n                \n                <td>None</td>\n                \n                <td>http://www.redfin.com/MA/Boston/165-Tremont-St-02111/unit-1502/home/9329174</td>\n                \n                <td></td>\n                \n                <td>None</td>\n                \n                <td>42.3539223</td>\n                \n                <td>-71.0636921</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>2 Avery St Unit 18E</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2111</td>\n                \n                <td>3055000</td>\n                \n                <td>3</td>\n                \n                <td>3.5</td>\n                \n                <td>Midtown</td>\n                \n                <td>2344</td>\n                \n                <td>None</td>\n                \n                <td>2000</td>\n                \n                <td>87</td>\n                \n                <td>http://www.redfin.com/MA/Boston/2-Avery-St-02111/unit-18E/home/11736816</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>54707422</td>\n                \n                <td>42.3527843</td>\n                \n                <td>-71.0630991</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>1 Franklin St #1108</td>\n                \n                <td>Boston</td>\n                \n                <td>MA</td>\n                \n                <td>2110</td>\n                \n                <td>1750000</td>\n                \n                <td>2</td>\n                \n                <td>2.0</td>\n                \n                <td>Midtown</td>\n                \n                <td>1566</td>\n                \n                <td>999</td>\n                \n                <td>2016</td>\n                \n                <td>60</td>\n                \n                <td>http://www.redfin.com/MA/Boston/1-Franklin-St-02108/unit-1108/home/108154689</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>62285782</td>\n                \n                <td>42.35631</td>\n                \n                <td>-71.05945</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>142 Farm St</td>\n                \n                <td>Dover</td>\n                \n                <td>MA</td>\n                \n                <td>2030</td>\n                \n                <td>1125000</td>\n                \n                <td>4</td>\n                \n                <td>2.5</td>\n                \n                <td></td>\n                \n                <td>3273</td>\n                \n                <td>89734</td>\n                \n                <td>1859</td>\n                \n                <td>None</td>\n                \n                <td>http://www.redfin.com/MA/Dover/142-Farm-St-02030/home/11708174</td>\n                \n                <td></td>\n                \n                <td>None</td>\n                \n                <td>42.221839</td>\n                \n                <td>-71.321119</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>143 Pine St</td>\n                \n                <td>Dover</td>\n                \n                <td>MA</td>\n                \n                <td>2030</td>\n                \n                <td>1077000</td>\n                \n                <td>4</td>\n                \n                <td>2.5</td>\n                \n                <td>Dover</td>\n                \n                <td>3736</td>\n                \n                <td>87466</td>\n                \n                <td>1995</td>\n                \n                <td>86</td>\n                \n                <td>http://www.redfin.com/MA/Dover/143-Pine-St-02030/home/11708952</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>60627103</td>\n                \n                <td>42.219392</td>\n                \n                <td>-71.284986</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Condo/Co-op</td>\n                \n                <td>223 Morrison Ave #223</td>\n                \n                <td>Somerville</td>\n                \n                <td>MA</td>\n                \n                <td>2144</td>\n                \n                <td>1375000</td>\n                \n                <td>4</td>\n                \n                <td>3.5</td>\n                \n                <td>Davis Square</td>\n                \n                <td>2923</td>\n                \n                <td>None</td>\n                \n                <td>1900</td>\n                \n                <td>60</td>\n                \n                <td>http://www.redfin.com/MA/Somerville/223-Morrison-Ave-02144/unit-223/home/109084304</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>62063986</td>\n                \n                <td>42.3978318</td>\n                \n                <td>-71.1204787</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>85 CHANDLER St</td>\n                \n                <td>Somerville</td>\n                \n                <td>MA</td>\n                \n                <td>2144</td>\n                \n                <td>1000000</td>\n                \n                <td>5</td>\n                \n                <td>1.0</td>\n                \n                <td>Somerville</td>\n                \n                <td>2054</td>\n                \n                <td>4500</td>\n                \n                <td>1900</td>\n                \n                <td>87</td>\n                \n                <td>http://www.redfin.com/MA/Somerville/85-Chandler-St-02144/home/8692230</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61671952</td>\n                \n                <td>42.4004857</td>\n                \n                <td>-71.1201065</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>32 Hancock Rd</td>\n                \n                <td>Weston</td>\n                \n                <td>MA</td>\n                \n                <td>2493</td>\n                \n                <td>1070000</td>\n                \n                <td>4</td>\n                \n                <td>3.0</td>\n                \n                <td>Weston</td>\n                \n                <td>2403</td>\n                \n                <td>64792</td>\n                \n                <td>1971</td>\n                \n                <td>84</td>\n                \n                <td>http://www.redfin.com/MA/Weston/32-Hancock-Rd-02493/home/8776937</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>59921546</td>\n                \n                <td>42.397893</td>\n                \n                <td>-71.284612</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>294 Central Ave</td>\n                \n                <td>Needham</td>\n                \n                <td>MA</td>\n                \n                <td>2494</td>\n                \n                <td>1049900</td>\n                \n                <td>4</td>\n                \n                <td>2.5</td>\n                \n                <td>Needham</td>\n                \n                <td>2938</td>\n                \n                <td>10019</td>\n                \n                <td>2011</td>\n                \n                <td>87</td>\n                \n                <td>http://www.redfin.com/MA/Needham/294-Central-Ave-02494/home/8923881</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61048054</td>\n                \n                <td>42.306322</td>\n                \n                <td>-71.237639</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>46 Sudbury Rd</td>\n                \n                <td>Concord</td>\n                \n                <td>MA</td>\n                \n                <td>1742</td>\n                \n                <td>1562500</td>\n                \n                <td>4</td>\n                \n                <td>3.5</td>\n                \n                <td>Concord</td>\n                \n                <td>2646</td>\n                \n                <td>7840</td>\n                \n                <td>1812</td>\n                \n                <td>85</td>\n                \n                <td>http://www.redfin.com/MA/Concord/46-Sudbury-Rd-01742/home/11593642</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61869457</td>\n                \n                <td>42.458425</td>\n                \n                <td>-71.353752</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>Single Family Residential</td>\n                \n                <td>18 Calumet Rd</td>\n                \n                <td>Winchester</td>\n                \n                <td>MA</td>\n                \n                <td>1890</td>\n                \n                <td>1705000</td>\n                \n                <td>6</td>\n                \n                <td>2.5</td>\n                \n                <td>Winchester</td>\n                \n                <td>3860</td>\n                \n                <td>14850</td>\n                \n                <td>1896</td>\n                \n                <td>87</td>\n                \n                <td>http://www.redfin.com/MA/Winchester/18-Calumet-Rd-01890/home/11457397</td>\n                \n                <td>MLS PIN</td>\n                \n                <td>61460482</td>\n                \n                <td>42.448535</td>\n                \n                <td>-71.150249</td>\n                \n              </tr>\n              \n            </tbody>\n          </table>\n        </div>\n      </div>\n    </div>\n  </div>\n</div><script class=\"pd_save is-viewer-good\">\n  $(function() {\n    var tableWrapper = $('.df-table-wrapper-f6fe6655');\n    var fixedHeader = $('.fixed-header', tableWrapper);\n    var tableContainer = $('.df-table-container', tableWrapper);\n    var table = $('.df-table', tableContainer);\n    var rows = $('tbody > tr', table);\n    var total = 500;\n\n    fixedHeader\n      .css('width', table.width())\n      .find('.fixed-cell')\n      .each(function(i, e) {\n        $(this).css('width', $('.df-table-wrapper-f6fe6655 th:nth-child(' + (i+1) + ')').css('width'));\n      });\n\n    tableContainer.scroll(function() {\n      fixedHeader.css({ left: table.position().left });\n    });\n\n    $('.df-table-search', tableWrapper).keyup(function() {\n      var val = '^(?=.*\\\\b' + $.trim($(this).val()).split(/\\s+/).join('\\\\b)(?=.*\\\\b') + ').*$';\n      var reg = RegExp(val, 'i');\n      var index = 0;\n      \n      rows.each(function(i, e) {\n        if (!reg.test($(this).text().replace(/\\s+/g, ' '))) {\n          $(this).attr('class', 'hidden');\n        }\n        else {\n          $(this).attr('class', (++index % 2 == 0 ? 'even' : 'odd'));\n        }\n      });\n\n      $('.df-table-search-count', tableWrapper).html('Showing ' + index + ' of ' + total);\n    });\n  });\n</script>"}, "metadata": {}}], "source": "display(homes)", "execution_count": 8}, {"cell_type": "markdown", "metadata": {}, "source": "## Simple visualization using bar charts\n\nWith PixieDust `display()`, you can visually explore the loaded data using built-in charts, such as, bar charts, line charts, scatter plots, or maps.\n\nTo explore a data set:\n* choose the desired chart type from the drop down\n* configure chart options\n* configure display options\n\nYou can analyze the average home price for each city by choosing: \n* chart type: bar chart\n* chart options\n * _Options > Keys_: `CITY`\n * _Options > Values_: `PRICE` \n * _Options > Aggregation_: `AVG`\n \nRun the next cell to review the results. "}, {"cell_type": "code", "metadata": {"scrolled": false, "collapsed": false, "pixiedust": {"displayParams": {"handlerId": "barChart", "legend": "true", "title": "Average home price by city", "mpld3": "false", "valueFields": "PRICE", "stretch": "true", "aggregation": "AVG", "rowCount": "100", "keyFields": "CITY", "rendererId": "matplotlib"}}}, "outputs": [{"output_type": "display_data", "data": {"text/plain": "<IPython.core.display.HTML object>", "text/html": "<style type=\"text/css\">.pd_warning{display:none;}</style><div class=\"pd_warning\"><em>Hey, there's something awesome here! To see it, open this notebook outside GitHub, in a viewer like Jupyter</em></div>\n        <div class=\"pd_save is-viewer-good\" style=\"padding-right:10px;text-align: center;line-height:initial !important;font-size: xx-large;font-weight: 500;color: coral;\">\n            Average home price by city\n        </div>\n    <div id=\"chartFigurefda7c3bb\" class=\"pd_save is-viewer-good\" style=\"overflow-x:auto\">\n            \n                    \n                            <center><img style=\"max-width:initial !important\" src=\"\" class=\"pd_save\"></center>\n                        \n                    \n                \n        </div>"}, "metadata": {}}], "source": "display(homes)", "execution_count": 9}, {"cell_type": "markdown", "metadata": {}, "source": "## Explore the data\n\nYou can change the display **Options** so you can continue to explore the loaded data set without having to pre-process the data. \n\nFor example, change: \n* _Options > Key_ to `YEAR_BUILT` and \n* _Options > aggregation_ to `COUNT` \n\nNow you can find out how old the listed properties are:"}, {"cell_type": "code", "metadata": {"collapsed": false, "pixiedust": {"displayParams": {"handlerId": "barChart", "legend": "false", "title": "Property age", "valueFields": "PRICE", "stretch": "true", "aggregation": "COUNT", "rowCount": "100", "keyFields": "YEAR BUILT"}}}, "outputs": [{"output_type": "display_data", "data": {"text/plain": "<IPython.core.display.HTML object>", "text/html": "<style type=\"text/css\">.pd_warning{display:none;}</style><div class=\"pd_warning\"><em>Hey, there's something awesome here! To see it, open this notebook outside GitHub, in a viewer like Jupyter</em></div>\n        <div class=\"pd_save is-viewer-good\" style=\"padding-right:10px;text-align: center;line-height:initial !important;font-size: xx-large;font-weight: 500;color: coral;\">\n            Property age\n        </div>\n    <div id=\"chartFigure551724ad\" class=\"pd_save is-viewer-good\" style=\"overflow-x:auto\">\n            \n                    \n                            <center><img style=\"max-width:initial !important\" src=\"\" class=\"pd_save\"></center>\n                        \n                    \n                \n        </div>"}, "metadata": {}}], "source": "display(homes)", "execution_count": 10}, {"cell_type": "markdown", "metadata": {}, "source": "## Use sample data sets\n\nPixieDust comes with a set of curated data sets that you can use get familiar with the different chart types and options. \n\nType `pixiedust.sampleData()` to display those data sets."}, {"cell_type": "code", "metadata": {"collapsed": false}, "outputs": [{"output_type": "display_data", "data": {"text/plain": "<IPython.core.display.HTML object>", "text/html": "<div id=\"pm_overallContainerc023bcd6\" style=\"display:none\">\n    <table width=\"100%\" style=\"border:0px\">\n        <tr style=\"border:0px\">\n            <td width=\"20px\" style=\"border:0px\"><span id=\"twistiec023bcd6\" style=\"color:blue;font-size:x-large;cursor:pointer\">&#9656;</span></td>\n            <td width=\"130px\" style=\"text-align:left;border:0px\"><span id=\"pm_overallJobNamec023bcd6\"></span>:</td>\n            <td width=\"calc(100% - 150px)\" style=\"border:0px\"><progress id=\"pm_overallProgressc023bcd6\" max=\"100\" value=\"0\" style=\"width:100%\"></progress></td>\n        </tr>\n    </table>\n</div>\n<div id=\"pm_containerc023bcd6\" style=\"display:none\">\n    <ul class=\"nav nav-tabs\" id=\"progressMonitorsc023bcd6\">\n    </ul>\n    <div class=\"tab-content\" id=\"tabContentc023bcd6\">\n    </div>\n</div>\n\n<script>\n$(\"#twistiec023bcd6\").click(function(){\n    visible = $(\"#pm_containerc023bcd6\").is(':visible');\n    $(\"#pm_containerc023bcd6\").slideToggle(\"slow\");\n    $(this).html(visible?\"&#9656;\":\"&#9662;\")\n});\n</script>"}, "metadata": {}}, {"output_type": "display_data", "data": {"text/plain": "<IPython.core.display.HTML object>", "text/html": "<table class=\"table table-hover pd_save\" style=\"font-size:small\">\n  <thead>\n    <tr>\n      <th align=\"center\" valign=\"middle\">Id</th>\n      <th>Name</th>\n      <th>Topic</th>\n      <th>Publisher</th>\n    </tr>\n  </thead>\n  <tbody>\n  \n    <tr>\n        <td>1</td>\n        <td>Car performance data</td>\n        <td>transportation</td>\n        <td>IBM</td>\n    </tr>\n  \n    <tr>\n        <td>2</td>\n        <td>Sample retail sales transactions, January 2009</td>\n        <td>Economy & Business</td>\n        <td>IBM Cloud Data Services</td>\n    </tr>\n  \n    <tr>\n        <td>3</td>\n        <td>Total population by country</td>\n        <td>Society</td>\n        <td>IBM Cloud Data Services</td>\n    </tr>\n  \n    <tr>\n        <td>4</td>\n        <td>GoSales Transactions for Naive Bayes Model</td>\n        <td>Leisure</td>\n        <td>IBM</td>\n    </tr>\n  \n    <tr>\n        <td>5</td>\n        <td>Election results by County</td>\n        <td>Society</td>\n        <td>IBM</td>\n    </tr>\n  \n    <tr>\n        <td>6</td>\n        <td>Million dollar home sales in NE Mass late 2016</td>\n        <td>Economy & Business</td>\n        <td>Redfin.com</td>\n    </tr>\n  \n    <tr>\n        <td>7</td>\n        <td>Boston Crime data, 2-week sample</td>\n        <td>Society</td>\n        <td>City of Boston</td>\n    </tr>\n  \n  </tbody>\n</table>"}, "metadata": {}}], "source": "pixiedust.sampleData()", "execution_count": 11}, {"cell_type": "markdown", "metadata": {}, "source": "The homes sales data set you loaded earlier is one of the samples. Therefore, you could have loaded it by specifying the displayed data set id as parameter: `home = pixiedust.sampleData(6)`"}, {"cell_type": "markdown", "metadata": {"collapsed": true}, "source": "If your data isn't stored in csv files, you can load it into a DataFrame from any supported Spark [data source](https://spark.apache.org/docs/latest/sql-programming-guide.html#data-sources). See [these Python code snippets](https://apsportal.ibm.com/docs/content/analyze-data/python_load.html) for more information."}, {"cell_type": "markdown", "metadata": {"collapsed": true}, "source": "End of chapter. [Return to table of contents](#toc)\n<hr>"}, {"cell_type": "markdown", "metadata": {"collapsed": true}, "source": "# <a id=\"part_three\"></a>Mix Scala and Python on the same notebook\n\nPython has a rich ecosystem of modules including plotting with matplotlib, data structure and analysis with pandas, machine learning, and natural language processing. However, data scientists working with Spark might occasionally need to call out code written in Scala or Java, for example, one of the hundreds of libraries available on `spark-packages.org`. Unfortunately, Jupyter Python notebooks do not currently provide a way to call out Scala or Java code. As a result, a typical workaround is to first use a Scala notebook to run the Scala code, persist the output somewhere like a Hadoop Distributed File System, create another Python notebook, and re-load the data. This is obviously inefficent and awkward.\n\nAs you'll see in this notebook, PixieDust provides a solution to this problem by letting users write and run scala code directly in its own cell. It also lets variables be shared between Python and Scala and vice-versa."}, {"cell_type": "markdown", "metadata": {}, "source": "## Define a few simple variables in Python"}, {"cell_type": "code", "metadata": {"collapsed": false}, "outputs": [{"output_type": "display_data", "data": {"text/plain": "<IPython.core.display.HTML object>", "text/html": "<div id=\"pm_overallContainer1d5e488d\" style=\"display:none\">\n    <table width=\"100%\" style=\"border:0px\">\n        <tr style=\"border:0px\">\n            <td width=\"20px\" style=\"border:0px\"><span id=\"twistie1d5e488d\" style=\"color:blue;font-size:x-large;cursor:pointer\">&#9656;</span></td>\n            <td width=\"130px\" style=\"text-align:left;border:0px\"><span id=\"pm_overallJobName1d5e488d\"></span>:</td>\n            <td width=\"calc(100% - 150px)\" style=\"border:0px\"><progress id=\"pm_overallProgress1d5e488d\" max=\"100\" value=\"0\" style=\"width:100%\"></progress></td>\n        </tr>\n    </table>\n</div>\n<div id=\"pm_container1d5e488d\" style=\"display:none\">\n    <ul class=\"nav nav-tabs\" id=\"progressMonitors1d5e488d\">\n    </ul>\n    <div class=\"tab-content\" id=\"tabContent1d5e488d\">\n    </div>\n</div>\n\n<script>\n$(\"#twistie1d5e488d\").click(function(){\n    visible = $(\"#pm_container1d5e488d\").is(':visible');\n    $(\"#pm_container1d5e488d\").slideToggle(\"slow\");\n    $(this).html(visible?\"&#9656;\":\"&#9662;\")\n});\n</script>"}, "metadata": {}}], "source": "pythonString = \"Hello From Python\"\npythonInt = 20", "execution_count": 12}, {"cell_type": "markdown", "metadata": {}, "source": "## Import the PixieDust module"}, {"cell_type": "markdown", "metadata": {"collapsed": false}, "source": "If you haven't already, import PixieDust. Follow the instructions in [Get started](#part_one)."}, {"cell_type": "markdown", "metadata": {}, "source": "## Use the Python variables in Scala code\nPixieDust makes all variables defined in the Python scope available to Scala using the following rules:\n\n* Primitive types are mapped to the Scala equivalent: for example, Python Strings become Scala Strings, Python Integer become Scala Integer, and so on.\n* Some complex types are mapped as follows: PySpark SQLContext, DataFrame, RDD are mapped to their Scala Spark equivalents. Python GraphFrames mapped to their Scala equivalents. PixieDust will add more mapping as needed.\n* Python classes are currently not converted and therefore cannot be used in Scala.\n\nThe PixieDust Scala Bridge requires the environment variable SCALA_HOME to be defined and pointing at a Scala install:"}, {"cell_type": "code", "metadata": {"collapsed": false}, "outputs": [{"output_type": "display_data", "data": {"text/plain": "<IPython.core.display.HTML object>", "text/html": "<div id=\"pm_overallContainer5557daf2\" style=\"display:none\">\n    <table width=\"100%\" style=\"border:0px\">\n        <tr style=\"border:0px\">\n            <td width=\"20px\" style=\"border:0px\"><span id=\"twistie5557daf2\" style=\"color:blue;font-size:x-large;cursor:pointer\">&#9656;</span></td>\n            <td width=\"130px\" style=\"text-align:left;border:0px\"><span id=\"pm_overallJobName5557daf2\"></span>:</td>\n            <td width=\"calc(100% - 150px)\" style=\"border:0px\"><progress id=\"pm_overallProgress5557daf2\" max=\"100\" value=\"0\" style=\"width:100%\"></progress></td>\n        </tr>\n    </table>\n</div>\n<div id=\"pm_container5557daf2\" style=\"display:none\">\n    <ul class=\"nav nav-tabs\" id=\"progressMonitors5557daf2\">\n    </ul>\n    <div class=\"tab-content\" id=\"tabContent5557daf2\">\n    </div>\n</div>\n\n<script>\n$(\"#twistie5557daf2\").click(function(){\n    visible = $(\"#pm_container5557daf2\").is(':visible');\n    $(\"#pm_container5557daf2\").slideToggle(\"slow\");\n    $(this).html(visible?\"&#9656;\":\"&#9662;\")\n});\n</script>"}, "metadata": {}}, {"text": "Hello From Python\n30\n", "output_type": "stream", "name": "stdout"}], "source": "%%scala\nprint(pythonString)\nprint(pythonInt + 10)", "execution_count": 13}, {"cell_type": "markdown", "metadata": {}, "source": "## Define a variable in Scala and use it in Python\nIn this section, you'll create a Spark DataFrame in Scala and use it in Python with the PixieDust `display` method.\n\n**Note:** only variables that are prefixed with two underscores ( `__` ) are available for use in Python."}, {"cell_type": "code", "metadata": {"collapsed": false}, "outputs": [{"output_type": "display_data", "data": {"text/plain": "<IPython.core.display.HTML object>", "text/html": "<div id=\"pm_overallContainer02293b98\" style=\"display:none\">\n    <table width=\"100%\" style=\"border:0px\">\n        <tr style=\"border:0px\">\n            <td width=\"20px\" style=\"border:0px\"><span id=\"twistie02293b98\" style=\"color:blue;font-size:x-large;cursor:pointer\">&#9656;</span></td>\n            <td width=\"130px\" style=\"text-align:left;border:0px\"><span id=\"pm_overallJobName02293b98\"></span>:</td>\n            <td width=\"calc(100% - 150px)\" style=\"border:0px\"><progress id=\"pm_overallProgress02293b98\" max=\"100\" value=\"0\" style=\"width:100%\"></progress></td>\n        </tr>\n    </table>\n</div>\n<div id=\"pm_container02293b98\" style=\"display:none\">\n    <ul class=\"nav nav-tabs\" id=\"progressMonitors02293b98\">\n    </ul>\n    <div class=\"tab-content\" id=\"tabContent02293b98\">\n    </div>\n</div>\n\n<script>\n$(\"#twistie02293b98\").click(function(){\n    visible = $(\"#pm_container02293b98\").is(':visible');\n    $(\"#pm_container02293b98\").slideToggle(\"slow\");\n    $(this).html(visible?\"&#9656;\":\"&#9662;\")\n});\n</script>"}, "metadata": {}}, {"text": "[year: int, zone: string, unique_customers: int, revenue: int]\n", "output_type": "stream", "name": "stdout"}], "source": "%%scala\n//Reuse the sqlContext object available in the python scope\nval c = sqlContext.asInstanceOf[org.apache.spark.sql.SQLContext]\nimport c.implicits._\n\nval __dfFromScala = Seq(\n(2010, \"Camping Equipment\", 3, 200),\n(2010, \"Golf Equipment\", 1, 240),\n(2010, \"Mountaineering Equipment\", 1, 348),\n(2010, \"Outdoor Protection\", 2, 200),\n(2010, \"Personal Accessories\", 2, 200),\n(2011, \"Camping Equipment\", 4, 489),\n(2011, \"Golf Equipment\", 5, 234),\n(2011, \"Mountaineering Equipment\",2, 123),\n(2011, \"Outdoor Protection\", 4, 654),\n(2011, \"Personal Accessories\", 2, 234),\n(2012, \"Camping Equipment\", 5, 876),\n(2012, \"Golf Equipment\", 5, 200),\n(2012, \"Mountaineering Equipment\", 3, 156),\n(2012, \"Outdoor Protection\", 5, 200),\n(2012, \"Personal Accessories\", 3, 345),\n(2013, \"Camping Equipment\", 8, 987),\n(2013, \"Golf Equipment\", 5, 434),\n(2013, \"Mountaineering Equipment\", 3, 278),\n(2013, \"Outdoor Protection\", 8, 134),\n(2013, \"Personal Accessories\", 4, 200)).toDF(\"year\", \"zone\", \"unique_customers\", \"revenue\")\n\nprint(__dfFromScala)", "execution_count": 14}, {"cell_type": "markdown", "metadata": {}, "source": "## Display a Scala DataFrame\nInvoke the PixieDust display API on `__dfFromScala` to visualize a Scala DataFrame:"}, {"cell_type": "code", "metadata": {"collapsed": false, "pixiedust": {"displayParams": {"handlerId": "barChart", "rowCount": "100", "keyFields": "zone", "clusterby": "year", "valueFields": "unique_customers", "aggregation": "AVG"}}}, "outputs": [{"output_type": "display_data", "data": {"text/plain": "<IPython.core.display.HTML object>", "text/html": "<style type=\"text/css\">.pd_warning{display:none;}</style><div class=\"pd_warning\"><em>Hey, there's something awesome here! To see it, open this notebook outside GitHub, in a viewer like Jupyter</em></div>\n        <div class=\"pd_save is-viewer-good\" style=\"padding-right:10px;text-align: center;line-height:initial !important;font-size: xx-large;font-weight: 500;color: coral;\">\n            \n        </div>\n    <div id=\"chartFiguree9657d89\" class=\"pd_save is-viewer-good\" style=\"overflow-x:auto\">\n            \n                    \n                            <center><img style=\"max-width:initial !important\" src=\"\" class=\"pd_save\"></center>\n                        \n                    \n                \n        </div>"}, "metadata": {}}], "source": "display(__dfFromScala)", "execution_count": 15}, {"cell_type": "markdown", "metadata": {}, "source": "In this chapter, you've seen how easy it is to intersperse Scala and Python in the same notebook.\nContinue exploring this powerful functionality by using more complex Scala libraries!"}, {"cell_type": "markdown", "metadata": {"collapsed": true}, "source": "End of chapter. [Return to table of contents](#toc)\n<hr>"}, {"cell_type": "markdown", "metadata": {"collapsed": true}, "source": "# <a id=\"part_four\"></a> Add Spark packages and run inside your notebook\n\nPixieDust PackageManager helps you install spark packages inside your notebook. This is especially useful when you're working in a hosted cloud environment without access to configuration files. Use PixieDust Package Manager to install:\n\n- a spark package from `spark-packages.org`\n- a package from the Maven search repository\n- a jar file directly from URL\n\n> **Note:** After you install a package, you must restart the kernel and import Pixiedust again.\n"}, {"cell_type": "markdown", "metadata": {}, "source": "## View list of packages\nTo see the packages installed on your system, run the following command:"}, {"cell_type": "code", "metadata": {"collapsed": false}, "outputs": [{"text": "direct.download:https://github.com/ibm-watson-data-lab/spark.samples/raw/master/dist/streaming-twitter-assembly-1.6.jar:1.0 => /gpfs/fs01/user/s2b7-790f27d2e466b6-772f4e1cd93d/data/libs/streaming-twitter-assembly-1.6.jar\ngraphframes:graphframes:0.1.0-spark1.6 => /gpfs/fs01/user/s2b7-790f27d2e466b6-772f4e1cd93d/data/libs/graphframes-0.1.0-spark1.6.jar\n", "output_type": "stream", "name": "stdout"}], "source": "import pixiedust\npixiedust.printAllPackages()", "execution_count": 2}, {"cell_type": "markdown", "metadata": {}, "source": "## Add a package from spark-packages.org\n\nThe command you use to install GraphFrames depends on your Spark version."}, {"cell_type": "code", "metadata": {"collapsed": false}, "outputs": [{"text": "Package already installed: graphframes:graphframes:0\n", "output_type": "stream", "name": "stdout"}, {"metadata": {}, "data": {"text/plain": "<pixiedust.packageManager.package.Package at 0x7fecd1c5da50>"}, "execution_count": 3, "output_type": "execute_result"}], "source": "# For Spark 2.0, uncomment and run the next line\n#pixiedust.installPackage(\"graphframes:graphframes:0\")\n\n# For Spark 1.6, uncomment and run the next line\n#pixiedust.installPackage(\"graphframes:graphframes:0.1.0-spark1.6\")", "execution_count": 3}, {"cell_type": "markdown", "metadata": {}, "source": "## View the updated list of packages\n\nRun `printAllPackages` again to see that GraphFrames is now in your list:"}, {"cell_type": "code", "metadata": {"collapsed": false}, "outputs": [{"text": "direct.download:https://github.com/ibm-watson-data-lab/spark.samples/raw/master/dist/streaming-twitter-assembly-1.6.jar:1.0 => /gpfs/fs01/user/s2b7-790f27d2e466b6-772f4e1cd93d/data/libs/streaming-twitter-assembly-1.6.jar\ngraphframes:graphframes:0.1.0-spark1.6 => /gpfs/fs01/user/s2b7-790f27d2e466b6-772f4e1cd93d/data/libs/graphframes-0.1.0-spark1.6.jar\n", "output_type": "stream", "name": "stdout"}], "source": "pixiedust.printAllPackages()", "execution_count": 7}, {"cell_type": "markdown", "metadata": {}, "source": "## Display a GraphFrames data sample\n\nGraphGrames comes with sample data sets. Even if GraphFrames is already installed, running the install command loads the Python that comes along with the package and enables features like the one you're about to see. Run the following cell and PixieDust displays a sample graph data set called **friends**. On the upper left of the display, click the table dropdown and switch between views of nodes and edges. "}, {"cell_type": "code", "metadata": {"scrolled": true, "collapsed": false, "pixiedust": {"displayParams": {"handlerId": "edges"}}}, "outputs": [{"output_type": "display_data", "data": {"text/plain": "<IPython.core.display.HTML object>", "text/html": "<style type=\"text/css\">.pd_warning{display:none;}</style><div class=\"pd_warning\"><em>Hey, there's something awesome here! To see it, open this notebook outside GitHub, in a viewer like Jupyter</em></div><style type=\"text/css\" class=\"pd_save is-viewer-good\">\n  .df-table-wrapper .panel-heading {\n    border-radius: 0;\n    padding: 0px;\n  }\n  .df-table-wrapper .panel-heading:hover {\n    border-color: #008571;\n  }\n  .df-table-wrapper .panel-title a {\n    background-color: #f9f9fb;\n    color: #333333;\n    display: block;\n    outline: none;\n    padding: 10px 15px;\n    text-decoration: none;\n  }\n  .df-table-wrapper .panel-title a:hover {\n    background-color: #337ab7;\n    border-color: #2e6da4;\n    color: #ffffff;\n    display: block;\n    padding: 10px 15px;\n    text-decoration: none;\n  }\n  .df-table-wrapper {\n    font-size: small;\n    font-weight: 300;\n    letter-spacing: 0.5px;\n    line-height: normal;\n  }\n  .df-table-search-count {\n    display: inline-block;\n    margin: 20px 0;\n  }\n  .df-table-container {\n    max-height: 50vh;\n    max-width: 100%;\n    overflow-x: auto;\n    position: relative;\n  }\n  .df-table-wrapper table {\n    border: 0 none #ffffff;\n    border-collapse: collapse;\n    margin: 0;\n    min-width: 100%;\n    padding: 0;\n    table-layout: fixed;\n  }\n  .df-table-wrapper tr.hidden {\n    display: none;\n  }\n  .df-table-wrapper tr:nth-child(even) {\n    background-color: #f9f9fb;\n  }\n  .df-table-wrapper tr.even {\n    background-color: #f9f9fb;\n  }\n  .df-table-wrapper tr.odd {\n    background-color: #ffffff;\n  }\n  .df-table-wrapper td + td {\n    border-left: 1px solid #e0e0e0;\n  }\n\n  .df-table-wrapper thead,\n  .fixed-header {\n    color: #337ab7;\n    font-family: monospace;\n  }\n  .df-table-wrapper tr,\n  .fixed-row {\n    border: 0 none #ffffff;\n    margin: 0;\n    padding: 0;\n  }\n  .df-table-wrapper th,\n  .df-table-wrapper td,\n  .fixed-cell {\n    border: 0 none #ffffff;\n    margin: 0;\n    min-width: 50px;\n    padding: 5px 20px 5px 10px;\n    text-align: left;\n    word-wrap: break-word;\n  }\n  .df-table-wrapper th {\n    padding-bottom: 0;\n    padding-top: 0;\n  }\n  .df-table-wrapper th div {\n    max-height: 1px;\n    visibility: hidden;\n  }\n\n  .df-schema-field {\n    margin-left: 10px;\n  }\n\n  .fixed-header-container {\n    overflow: hidden;\n    position: relative;\n  }\n  .fixed-header {\n    border-bottom: 2px solid #2e6da4;\n    display: table;\n    position: relative;\n  }\n  .fixed-row {\n    display: table-row;\n  }\n  .fixed-cell {\n    display: table-cell;\n  }\n</style><div class=\"df-table-wrapper df-table-wrapper-cdea5370 panel-group pd_save is-viewer-good\">\n  <!-- dataframe schema -->\n  <div class=\"panel panel-default\">\n    <div class=\"panel-heading\">\n      <h4 class=\"panel-title\" style=\"margin: 0px;\">\n        <a data-toggle=\"collapse\" href=\"#df-schema-cdea5370\" data-parent=\"#df-table-wrapper-cdea5370\">Schema</a>\n      </h4>\n    </div>\n    <div id=\"df-schema-cdea5370\" class=\"panel-collapse collapse\">\n      <div class=\"panel-body\" style=\"font-family: monospace;\">\n        <div class=\"df-schema-type\">\n          <span>type: </span><span>struct</span>\n        </div>\n        <div class=\"df-schema-fields\">\n          <div>field:</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'string', 'name': 'src', 'nullable': True}</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'string', 'name': 'dst', 'nullable': True}</div>\n          \n            <div class=\"df-schema-field\">{'metadata': {}, 'type': 'string', 'name': 'relationship', 'nullable': True}</div>\n          \n        </div>\n      </div>\n    </div>\n  </div>\n  <!-- dataframe table -->\n  <div class=\"panel panel-default\">\n    <div class=\"panel-heading\">\n      <h4 class=\"panel-title\" style=\"margin: 0px;\">\n        <a data-toggle=\"collapse\" href=\"#df-table-cdea5370\" data-parent=\"#df-table-wrapper-cdea5370\">Table</a>\n      </h4>\n    </div>\n    <div id=\"df-table-cdea5370\" class=\"panel-collapse collapse in\">\n      <div class=\"panel-body\">\n        \n        <input class=\"df-table-search form-control input-sm\" placeholder=\"Search table\" type=\"text\">\n        <div>\n          <span class=\"df-table-search-count\">Showing 7 of 7</span>\n        </div>\n        <!-- fixed header for when dataframe table scrolls -->\n        <div class=\"fixed-header-container\">\n          <div class=\"fixed-header\">\n            <div class=\"fixed-row\">\n              \n              <div class=\"fixed-cell\">src</div>\n              \n              <div class=\"fixed-cell\">dst</div>\n              \n              <div class=\"fixed-cell\">relationship</div>\n              \n            </div>\n          </div>\n        </div>\n        <div class=\"df-table-container\">\n          <table class=\"df-table\">\n            <thead>\n              <tr>\n                \n                <th><div>src</div></th>\n                \n                <th><div>dst</div></th>\n                \n                <th><div>relationship</div></th>\n                \n              </tr>\n            </thead>\n            <tbody>\n              \n              <tr>\n                \n                <td>a</td>\n                \n                <td>b</td>\n                \n                <td>friend</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>b</td>\n                \n                <td>c</td>\n                \n                <td>follow</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>c</td>\n                \n                <td>b</td>\n                \n                <td>follow</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>f</td>\n                \n                <td>c</td>\n                \n                <td>follow</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>e</td>\n                \n                <td>f</td>\n                \n                <td>follow</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>e</td>\n                \n                <td>d</td>\n                \n                <td>friend</td>\n                \n              </tr>\n              \n              <tr>\n                \n                <td>d</td>\n                \n                <td>a</td>\n                \n                <td>friend</td>\n                \n              </tr>\n              \n            </tbody>\n          </table>\n        </div>\n      </div>\n    </div>\n  </div>\n</div><script class=\"pd_save is-viewer-good\">\n  $(function() {\n    var tableWrapper = $('.df-table-wrapper-cdea5370');\n    var fixedHeader = $('.fixed-header', tableWrapper);\n    var tableContainer = $('.df-table-container', tableWrapper);\n    var table = $('.df-table', tableContainer);\n    var rows = $('tbody > tr', table);\n    var total = 7;\n\n    fixedHeader\n      .css('width', table.width())\n      .find('.fixed-cell')\n      .each(function(i, e) {\n        $(this).css('width', $('.df-table-wrapper-cdea5370 th:nth-child(' + (i+1) + ')').css('width'));\n      });\n\n    tableContainer.scroll(function() {\n      fixedHeader.css({ left: table.position().left });\n    });\n\n    $('.df-table-search', tableWrapper).keyup(function() {\n      var val = '^(?=.*\\\\b' + $.trim($(this).val()).split(/\\s+/).join('\\\\b)(?=.*\\\\b') + ').*$';\n      var reg = RegExp(val, 'i');\n      var index = 0;\n      \n      rows.each(function(i, e) {\n        if (!reg.test($(this).text().replace(/\\s+/g, ' '))) {\n          $(this).attr('class', 'hidden');\n        }\n        else {\n          $(this).attr('class', (++index % 2 == 0 ? 'even' : 'odd'));\n        }\n      });\n\n      $('.df-table-search-count', tableWrapper).html('Showing ' + index + ' of ' + total);\n    });\n  });\n</script>"}, "metadata": {}}], "source": "#import the Graphs example\nfrom graphframes.examples import Graphs\n#create the friends example graph\ng=Graphs(sqlContext).friends()\n#use the pixiedust display\ndisplay(g)", "execution_count": 8}, {"cell_type": "markdown", "metadata": {}, "source": "## Install from Maven\nTo install a package from the [Apache Maven search repository](https://maven.apache.org/), visit the project and find the `groupId` and `artifactId` for the package that you want. Enter them in the following installation command.  [See instructions for the installPackage command](https://pixiedust.github.io/pixiedust/packagemanager.html#install-from-maven-search-repository). For example, the following cell installs Apache Commons: "}, {"cell_type": "code", "metadata": {"collapsed": false}, "outputs": [{"text": "Downloading package org.apache.commons:commons-csv:1.4 to /gpfs/fs01/user/s2b7-790f27d2e466b6-772f4e1cd93d/data/libs/commons-csv-1.4.jar\n", "output_type": "stream", "name": "stdout"}, {"output_type": "display_data", "data": {"text/plain": "<IPython.core.display.HTML object>", "text/html": "\n                <div>\n                    <span id=\"pm_label8632d483\">Starting download...</span>\n                    <progress id=\"pm_progress8632d483\" max=\"100\" value=\"0\" style=\"width:200px\"></progress>\n                </div>"}, "metadata": {}}, {"output_type": "display_data", "data": {"application/javascript": "\n                    $(\"#pm_label8632d483\").text(\"Downloaded 8192 of 39978 bytes\");\n                    $(\"#pm_progress8632d483\").attr(\"value\", 20.49);\n                ", "text/plain": "<IPython.core.display.Javascript object>"}, "metadata": {}}, {"output_type": "display_data", "data": {"application/javascript": "\n                    $(\"#pm_label8632d483\").text(\"Downloaded 16384 of 39978 bytes\");\n                    $(\"#pm_progress8632d483\").attr(\"value\", 40.98);\n                ", "text/plain": "<IPython.core.display.Javascript object>"}, "metadata": {}}, {"output_type": "display_data", "data": {"application/javascript": "\n                    $(\"#pm_label8632d483\").text(\"Downloaded 24576 of 39978 bytes\");\n                    $(\"#pm_progress8632d483\").attr(\"value\", 61.47);\n                ", "text/plain": "<IPython.core.display.Javascript object>"}, "metadata": {}}, {"output_type": "display_data", "data": {"application/javascript": "\n                    $(\"#pm_label8632d483\").text(\"Downloaded 32768 of 39978 bytes\");\n                    $(\"#pm_progress8632d483\").attr(\"value\", 81.97);\n                ", "text/plain": "<IPython.core.display.Javascript object>"}, "metadata": {}}, {"output_type": "display_data", "data": {"application/javascript": "\n                    $(\"#pm_label8632d483\").text(\"Downloaded 39978 of 39978 bytes\");\n                    $(\"#pm_progress8632d483\").attr(\"value\", 100.0);\n                ", "text/plain": "<IPython.core.display.Javascript object>"}, "metadata": {}}, {"text": "Package org.apache.commons:commons-csv:1.4 downloaded successfully\n\u001b[31mPlease restart Kernel to complete installation of the new package\u001b[0m\nSuccessfully added package org.apache.commons:commons-csv:1.4\n", "output_type": "stream", "name": "stdout"}, {"metadata": {}, "data": {"text/plain": "<pixiedust.packageManager.package.Package at 0x7fe7d856ef50>"}, "execution_count": 7, "output_type": "execute_result"}], "source": "pixiedust.installPackage(\"org.apache.commons:commons-csv:0\")", "execution_count": 7}, {"cell_type": "markdown", "metadata": {}, "source": "## Install a jar file directly from a URL \n    \nTo install a jar file that is not packaged in a maven repository, provide its URL. "}, {"cell_type": "code", "metadata": {"collapsed": false}, "outputs": [{"text": "Package already installed: https://github.com/ibm-watson-data-lab/spark.samples/raw/master/dist/streaming-twitter-assembly-1.6.jar\n", "output_type": "stream", "name": "stdout"}, {"metadata": {}, "data": {"text/plain": "<pixiedust.packageManager.package.Package at 0x7feccf9ab6d0>"}, "output_type": "execute_result", "execution_count": 9}], "source": "pixiedust.installPackage(\"https://github.com/ibm-watson-data-lab/spark.samples/raw/master/dist/streaming-twitter-assembly-1.6.jar\")", "execution_count": 9}, {"cell_type": "markdown", "metadata": {}, "source": "## Follow the tutorial\n\nTo understand what you can do with this jar file, read David Taieb's latest [Realtime Sentiment Analysis of Twitter Hashtags with Spark](https://medium.com/ibm-watson-data-lab/real-time-sentiment-analysis-of-twitter-hashtags-with-spark-7ee6ca5c1585#.2iblfu58c) tutorial."}, {"cell_type": "markdown", "metadata": {"collapsed": true}, "source": "## Uninstall a package\n\nIt's just as easy to get rid of a package you installed. Just run the command `pixiedust.uninstallPackage(\"<<mypackage>>\")`. For example, you can uninstall Apache Commons:"}, {"cell_type": "code", "metadata": {"collapsed": false}, "outputs": [{"text": "Successfully deleted package org.apache.commons:commons-csv:1.4\n", "output_type": "stream", "name": "stdout"}], "source": "pixiedust.uninstallPackage(\"org.apache.commons:commons-csv:0\")", "execution_count": 3}, {"cell_type": "markdown", "metadata": {"collapsed": true}, "source": "End of chapter. [Return to table of contents](#toc)\n<hr>"}, {"cell_type": "markdown", "metadata": {}, "source": "# <a id=\"part_five\"></a> Stash Your Data\n\nWith PixieDust, you also have the option to export the data from your notebook to external sources.\nThe output of the `display` API includes a toolbar that contains a **Download** button.\n\n<img style=\"margin:10px 0\" src=\"https://pixiedust.github.io/pixiedust/_images/downloadfile.png\">\n\n"}, {"cell_type": "markdown", "metadata": {}, "source": "\n## Stash to Cloudant\n\nYou save the data directly into a [Cloudant](https://cloudant.com/) or [CouchDB](https://couchdb.apache.org/) database.\n\n**Prerequisite:** Collect your database connection information: the database host, user name, and password.  \n  \nIf your Cloudant instance was provisioned in [Bluemix](https://console.ng.bluemix.net/catalog/services/cloudant-nosql-db/), you can find the connectivity information in the **Service Credentials** tab.\n\nTo stash to Cloudant:\n\n1. From the toolbar in the `display` output, click the **Download** button.  \n2. Choose **Stash to Cloudant** from the menu. \n3. Click the dropdown to see the list of available connections and select an existing connection or add a new connection:  \n    1. Click the **`+`** plus button to add a new connection.\n    1. Enter your Cloudant database credentials in JSON format.  \n    1. If you are stashing to CouchDB, include the protocol. See the [sample credentials format](#Sample-Credentials-Format) below.\n    1. Click **OK**.\n    1. Select the new connection.\n4. Click **Submit**.\n\n\n### Sample Credentials Format  \n\n#### CouchDB\n```\n{\n    \"name\": \"local-couchdb-connection\",\n    \"credentials\": {\n        \"username\": \"couchdbuser\",\n        \"password\": \"password\",\n        \"protocol\": \"http\",\n        \"host\": \"127.0.0.1:5984\",\n        \"port\": 5984,\n        \"url\": \"http://couchdbuser:password@127.0.0.1:5984\"\n    }\n}\n```\n\n#### Cloudant\n```\n{\n    \"name\": \"remote-cloudant-connection\",\n    \"credentials\": {\n        \"username\": \"username-bluemix\",\n        \"password\": \"password\",\n        \"host\": \"host-bluemix.cloudant.com\",\n        \"port\": 443,\n        \"url\": \"https://username-bluemix:password@host-bluemix.cloudant.com\"\n    }\n}\n```\n"}, {"cell_type": "markdown", "metadata": {"collapsed": true}, "source": "## Download as a file\n\nAlternatively, you can choose to save the data set to various file formats (for example, CSV, JSON, XML, and so on).\n\nTo save a data set as a file:\n\n1. From the toolbar in the **`display`** output, click the **Download** button.\n1. Choose **Download as File**.\n1. Choose the desired format.\n1. Specify the number of records to download.\n    <img style=\"margin:10px 0\" src=\"https://pixiedust.github.io/pixiedust/_images/save_as.png\">\n1. Click **OK**.\n"}, {"cell_type": "markdown", "metadata": {}, "source": "End of chapter. [Return to table of contents](#toc)\n<hr>"}, {"cell_type": "markdown", "metadata": {}, "source": "# <a id=\"contribute\"></a>Contribute\n\nBy now, you've walked through PixieDust's intro notebooks and seen PixieDust in action. If you like what you saw, join [the project](https://github.com/ibm-watson-data-lab/pixiedust)! \n\nAnyone can get involved. Here are some ways you can [contribute](https://pixiedust.github.io/pixiedust/contribute.html):\n\n - [Write a visualization](#Write-a-visualization)\n - [Build a renderer](#Build-a-renderer)\n - [Enter an issue](#Enter-an-issue)\n - [Share PixieDust](#Share-PixieDust)\n - [Learn more](#Learn-more)\n"}, {"cell_type": "markdown", "metadata": {}, "source": "## Write a visualization\n\nContribute your own custom visualization. Here's a taste of how it works. \n\nRun the next 4 cells to do the following:\n\n1. Import PixieDust. \n2. Generate a sample DataFrame. \n3. Create a custom table display option called **NewSample**. \n4. Display the DataFrame and see your new custom option under the **Table** dropdown menu.\n\nThis is just one small example you can quickly do within this notebook. [Read how to create a custom visualization](https://pixiedust.github.io/pixiedust/writeviz.html).\n"}, {"cell_type": "code", "metadata": {"collapsed": false}, "outputs": [], "source": "import pixiedust", "execution_count": null}, {"cell_type": "markdown", "metadata": {}, "source": "Now, create a simple DataFrame:"}, {"cell_type": "code", "metadata": {"collapsed": true}, "outputs": [], "source": "sqlContext=SQLContext(sc)\nd1 = sqlContext.createDataFrame(\n[(2010, 'Camping Equipment', 3),\n (2010, 'Golf Equipment', 1),\n (2010, 'Mountaineering Equipment', 1),\n (2010, 'Outdoor Protection', 2),\n (2010, 'Personal Accessories', 2),\n (2011, 'Camping Equipment', 4),\n (2011, 'Golf Equipment', 5),\n (2011, 'Mountaineering Equipment',2),\n (2011, 'Outdoor Protection', 4),\n (2011, 'Personal Accessories', 2),\n (2012, 'Camping Equipment', 5),\n (2012, 'Golf Equipment', 5),\n (2012, 'Mountaineering Equipment', 3),\n (2012, 'Outdoor Protection', 5),\n (2012, 'Personal Accessories', 3),\n (2013, 'Camping Equipment', 8),\n (2013, 'Golf Equipment', 5),\n (2013, 'Mountaineering Equipment', 3),\n (2013, 'Outdoor Protection', 8),\n (2013, 'Personal Accessories', 4)],\n[\"year\",\"zone\",\"unique_customers\"])", "execution_count": null}, {"cell_type": "markdown", "metadata": {}, "source": "The following cell creates a new custom table visualization plugin called **NewSample**:"}, {"cell_type": "code", "metadata": {"collapsed": false}, "outputs": [], "source": "from pixiedust.display.display import *\n\nclass TestDisplay(Display):\n    def doRender(self, handlerId):\n        self._addHTMLTemplateString(\n\"\"\"\nNewSample Plugin\n<table class=\"table table-striped\">\n    <thead>                 \n        {%for field in entity.schema.fields%}\n        <th>{{field.name}}</th>\n        {%endfor%}\n    </thead>\n    <tbody>\n        {%for row in entity.take(100)%}\n        <tr>\n            {%for field in entity.schema.fields%}\n            <td>{{row[field.name]}}</td>\n            {%endfor%}\n        </tr>\n        {%endfor%}\n    </tbody>\n</table>\n\"\"\"\n        )\n\n@PixiedustDisplay()\nclass TestPluginMeta(DisplayHandlerMeta):\n    @addId\n    def getMenuInfo(self,entity,dataHandler):\n        if entity.__class__.__name__ == \"DataFrame\":\n            return [\n                {\"categoryId\": \"Table\", \"title\": \"NewSample Table\", \"icon\": \"fa-table\", \"id\": \"newsampleTest\"}\n            ]\n        else:\n            return []\n    def newDisplayHandler(self,options,entity):\n        return TestDisplay(options,entity)", "execution_count": null}, {"cell_type": "markdown", "metadata": {}, "source": "Next, run `display()` to show the data. Click the **Table** dropdown. You now see **NewSample Table** option, the custom visualization you just created!"}, {"cell_type": "code", "metadata": {"collapsed": false, "pixiedust": {"displayParams": {"handlerId": "dataframe"}}}, "outputs": [], "source": "display(d1)", "execution_count": null}, {"cell_type": "markdown", "metadata": {}, "source": "**Error?** If you changed the name yourself in cell 3, you might get an error when you try to display. You can fix this by updating metadata in the display() cell. To do so, go to the Jupyter menu above the notebook and choose **View > Cell Toolbar > Edit Metadata**. Then scroll down to the `display(dl)` cell, click its **Edit Metadata** button and change the `handlerID`."}, {"cell_type": "markdown", "metadata": {}, "source": "## Build a renderer\n\nPixieDust lets you switch between renderers for charts and maps. We'd love to add more to the list. It's easy to get started. Try the `generate` tool to create a boilerplate renderer using a quick CLI wizard. [Read how to build a renderer](https://pixiedust.github.io/pixiedust/renderer.html)."}, {"cell_type": "markdown", "metadata": {}, "source": "## Enter an issue\n\nFound a bug? Thought of great enhancement? [Enter an issue](https://github.com/ibm-watson-data-lab/pixiedust/issues) to let us know. Tell us what you think."}, {"cell_type": "markdown", "metadata": {}, "source": "## Share PixieDust\n\nIf you think someone you know would be interested in PixieDust, spread the word:\n\n - <a href=\"https://twitter.com/home?status=Happy%20to%20find%20PixieDust.%20Data%20notebook%20visualizations%20for%20everyone%3A%20https%3A//github.com/ibm-watson-data-lab/pixiedust%0A\">Tweet</a>\n - <a href=\"https://www.linkedin.com/shareArticle?mini=true&url=https%3A//github.com/ibm-watson-data-lab/pixiedust&title=PixieDust%3A%20Data%20notebook%20visualizations%20for%20everyone&summary=Happy%20to%20find%20PixieDust,%20a%20new%20helper%20library%20for%20python%20and%20scala%3A%20https%3A//github.com/ibm-watson-data-lab/pixiedust%0A&source=\">Share on LinkedIn</a>\n - <a href=\"mailto:?&subject=PixieDust: Data notebook visualizations for everyone&body=I%20found%20a%20new%20helper%20library%20for%20notebooks%3A%20https%3A//github.com/ibm-watson-data-lab/pixiedust\">Send email</a>"}, {"cell_type": "markdown", "metadata": {}, "source": "## Learn more\n\nReady to pitch in? We can't wait to see what you share. [More on how to contribute](https://pixiedust.github.io/pixiedust/contribute.html). "}, {"cell_type": "markdown", "metadata": {}, "source": "End of chapter. [Return to table of contents](#toc)\n\n## Authors\n* Jose Barbosa\n* Mike Broberg\n* Inge Halilovic\n* Jess Mantaro\n* Brad Noble\n* David Taieb\n* Patrick Titzler\n\n<hr>\nCopyright &copy; IBM Corp. 2017. This notebook and its source code are released under the terms of the MIT License."}, {"cell_type": "code", "metadata": {"collapsed": true}, "outputs": [], "source": "", "execution_count": null}], "nbformat": 4, "metadata": {"celltoolbar": "Raw Cell Format", "kernelspec": {"display_name": "Python 2 with Spark 1.6", "name": "python2", "language": "python"}, "language_info": {"version": "2.7.11", "nbconvert_exporter": "python", "mimetype": "text/x-python", "codemirror_mode": {"version": 2, "name": "ipython"}, "file_extension": ".py", "name": "python", "pygments_lexer": "ipython2"}}, "nbformat_minor": 0}